网站安全狗卸载卸载不掉,zenm自己做网站,wordpress连接微信支付,网站怎么做移动适配Python-OpenCV中的图像处理-形态学转换 形态学转换腐蚀膨胀开运算闭运算形态学梯度礼帽黑帽形态学操作之间的关系 形态学代码例程 形态学转换 
形态学操作:腐蚀#xff0c;膨胀#xff0c;开运算#xff0c;闭运算#xff0c;形态学梯度#xff0c;礼帽#xff0c;黑帽等… Python-OpenCV中的图像处理-形态学转换 形态学转换腐蚀膨胀开运算闭运算形态学梯度礼帽黑帽形态学操作之间的关系 形态学代码例程 形态学转换 
形态学操作:腐蚀膨胀开运算闭运算形态学梯度礼帽黑帽等主要涉及函数cv2.erode() cv2.dilate() cv2.morphologyEx()原理形态学操作是根据图像形状进行的简单操作。一般情况下对二值化图像进行的操作。需要输入两个参数一个是原始图像第二个被称为结构化元素或核它是用来决定操作的性质的。两个基本的形态学操作是腐蚀和膨胀。他们的变体构成了开运算闭运算梯度等。 
腐蚀 
就像土壤侵蚀一样这个操作会把前景物体的边界腐蚀掉但是前景仍然是白色。这是怎么做到的呢卷积核沿着图像滑动如果与卷积核对应的原图像的所有像素值都是 1那么中心元素就保持原来的像素值否则就变为零。这回产生什么影响呢根据卷积核的大小靠近前景的所有像素都会被腐蚀掉变为 0所以前景物体会变小整幅图像的白色区域会减少。这对于去除白噪声很有用也可以用来断开两个连在一块的物体等。 
import numpy as np
import cv2
from matplotlib import pyplot as pltimg  cv2.imread(./resource/opencv/image/Morphology_1_Tutorial_Theory_Dilation.png, cv2.IMREAD_GRAYSCALE)
kernel  np.ones((5,5), np.uint8)
erosion  cv2.erode(img, kernelkernel, iterations1)plt.subplot(121), plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB)), plt.title(origin), plt.xticks([]), plt.yticks([])
plt.subplot(122), plt.imshow(cv2.cvtColor(erosion, cv2.COLOR_BGR2RGB)), plt.title(erode), plt.xticks([]), plt.yticks([])
plt.show()膨胀 
与腐蚀相反与卷积核对应的原图像的像素值中只要有一个是 1中心元素的像素值就是 1。所以这个操作会增加图像中的白色区域前景。一般在去噪声时先用腐蚀再用膨胀。因为腐蚀在去掉白噪声的同时也会使前景对象变小。所以我们再对他进行膨胀。这时噪声已经被去除了不会再回来了但是前景还在并会增加。膨胀也可以用来连接两个分开的物体。 
import numpy as np
import cv2
from matplotlib import pyplot as plt# 膨胀
img  cv2.imread(./resource/opencv/image/Morphology_1_Tutorial_Theory_Original_Image.png, cv2.IMREAD_GRAYSCALE)kernel  np.ones((5,5), np.uint8)
dilation  cv2.dilate(img, kernelkernel, iterations1)plt.subplot(121), plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB)), plt.title(origin), plt.xticks([]), plt.yticks([])
plt.subplot(122), plt.imshow(cv2.cvtColor(dilation, cv2.COLOR_BGR2RGB)), plt.title(dilate), plt.xticks([]), plt.yticks([])
plt.show()开运算 
先腐蚀再膨胀就叫做开运算。它被用来去除噪声。这里我们用到的函数是 cv2.morphologyEx() opening  cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel) 
闭运算 
先膨胀再腐蚀就叫做闭运算。它经常被用来填充前景物体中的小洞或者前景物体上的小黑点 closing  cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel) 
形态学梯度 
其实就是一幅图像膨胀与腐蚀的差别结果看上去就像前景物体的轮廓。 gradient  cv2.morphologyEx(img, cv2.MORPH_GRADIENT, kernel) 
礼帽 
原始图像与进行开运算之后得到的图像的差。下面的例子是用一个 9x9 的核进行礼帽操作的结果。 tophat  cv2.morphologyEx(img, cv2.MORPH_TOPHAT, kernel) 
黑帽 
进行闭运算之后得到的图像与原始图像的差 blackhat  cv2.morphologyEx(img, cv2.MORPH_BLACKHAT, kernel) 
形态学操作之间的关系 
形态学转换 
Opening: dst  open(src, element)  dilate(erode(src, element), element)Closing: dst  close(src, element)  erode(dilate(src, element), element)Morphological gradient: dst  morph_grad(src, element)  dilate(src, element) - erode(src, element)“Top hat”: dst  tophat(src, element)  src - open(src, element)“Black hat”: dst  blackhat(src, element)  close(src, element) - src 
形态学代码例程 
import numpy as np
import cv2
from matplotlib import pyplot as plt
形态学转换
Opening: dst  open(src, element)  dilate(erode(src, element), element)Closing:dst  close(src, element)  erode(dilate(src, element), element)Morphological gradient:dst  morph_grad(src, element)  dilate(src, element) - erode(src, element)Top hat:dst  tophat(src, element)  src - open(src, element)Black hat:dst  blackhat(src, element)  close(src, element) - src
# 开运算
# 先进行腐蚀在进行膨胀叫做开运算。用来去除噪音
# opening  cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel)# 闭运算
# 先进行膨胀再进行腐蚀叫做闭运算。用来填充前景物体中的小洞或者全景上的小黑点。
# closing  cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel)# 形态学梯度
# 就是一副图像膨胀与腐蚀的差别结果看上去就像前景物体的轮廓。
# gradient  cv2.morphologyEx(img, cv2.MORPH_GRADIENT, kernel)# 礼帽
# 原始图像与进行开运算之后得到的图像的差
# tophat  cv2.morphologyEx(img, cv2.MORPH_TOPHAT, kernel)# 黑帽
# 原始图像与进行闭运算之后得到的图像的差
# blackhat  cv2.morphologyEx(img, cv2.MORPH_BLACKHAT, kernel)# 结构化元素
kernel_rect  cv2.getStructuringElement(cv2.MORPH_RECT, (5,5))       # 矩形核
kernel_elli  cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (5,5))    # 椭圆核
kernel_cros  cv2.getStructuringElement(cv2.MORPH_CROSS, (5,5))      # 十字核# 卷积核
# kernel  kernel_rects
# kernel  kernel_elli
# kernel  kernel_cros
kernel  np.ones((5,5), np.uint8)
kernel9x9  np.ones((15,15), np.uint8)img_origin  cv2.imread(./resource/opencv/image/Morphology_1_Tutorial_Theory_Dilation.png, cv2.IMREAD_COLOR)
img_gray  cv2.imread(./resource/opencv/image/Morphology_1_Tutorial_Theory_Dilation.png, cv2.IMREAD_GRAYSCALE)# 开运算 腐蚀膨胀
opening  cv2.morphologyEx(img_gray, cv2.MORPH_OPEN, kernel)# 闭运算 膨胀腐蚀
closing  cv2.morphologyEx(img_gray, cv2.MORPH_CLOSE, kernel)# 梯度 膨胀-腐蚀 
gradient  cv2.morphologyEx(img_gray, cv2.MORPH_GRADIENT, kernel)# 礼帽  原始图像与进行开运算之后得到的图像的差
tophat  cv2.morphologyEx(img_gray, cv2.MORPH_TOPHAT, kernel9x9)# 黑帽 进行闭运算之后与原始图像的图像的差
blackhat  cv2.morphologyEx(img_gray, cv2.MORPH_BLACKHAT, kernel9x9)# 腐蚀
erosion  cv2.erode(img_gray, kernelkernel, iterations1)# 膨胀 
dilation  cv2.dilate(img_gray, kernelkernel, iterations1)plt.subplot(331), plt.imshow(cv2.cvtColor(img_origin,cv2.COLOR_BGR2RGB), gray), plt.title(origin), plt.xticks([]), plt.yticks([])
plt.subplot(332), plt.imshow(img_gray, gray), plt.title(gray), plt.xticks([]), plt.yticks([])
plt.subplot(333), plt.imshow(opening, gray), plt.title(open), plt.xticks([]), plt.yticks([])
plt.subplot(334), plt.imshow(closing, gray), plt.title(close), plt.xticks([]), plt.yticks([])
plt.subplot(335), plt.imshow(gradient, gray), plt.title(gradient), plt.xticks([]), plt.yticks([])
plt.subplot(336), plt.imshow(tophat, gray), plt.title(tophat), plt.xticks([]), plt.yticks([])
plt.subplot(337), plt.imshow(blackhat, gray), plt.title(blackhat), plt.xticks([]), plt.yticks([])
plt.subplot(338), plt.imshow(erosion, gray), plt.title(erode), plt.xticks([]), plt.yticks([])
plt.subplot(339), plt.imshow(dilation, gray), plt.title(dilate), plt.xticks([]), plt.yticks([])
plt.show() 文章转载自: http://www.morning.lqrpk.cn.gov.cn.lqrpk.cn http://www.morning.krklj.cn.gov.cn.krklj.cn http://www.morning.rszbj.cn.gov.cn.rszbj.cn http://www.morning.nstml.cn.gov.cn.nstml.cn http://www.morning.rjljb.cn.gov.cn.rjljb.cn http://www.morning.skpdg.cn.gov.cn.skpdg.cn http://www.morning.rgpy.cn.gov.cn.rgpy.cn http://www.morning.qbzfp.cn.gov.cn.qbzfp.cn http://www.morning.ygkk.cn.gov.cn.ygkk.cn http://www.morning.nzhzt.cn.gov.cn.nzhzt.cn http://www.morning.wwxg.cn.gov.cn.wwxg.cn http://www.morning.cfqyx.cn.gov.cn.cfqyx.cn http://www.morning.byjwl.cn.gov.cn.byjwl.cn http://www.morning.cgstn.cn.gov.cn.cgstn.cn http://www.morning.kwz6232.cn.gov.cn.kwz6232.cn http://www.morning.qgdsd.cn.gov.cn.qgdsd.cn http://www.morning.hkshy.cn.gov.cn.hkshy.cn http://www.morning.dxhdn.cn.gov.cn.dxhdn.cn http://www.morning.rbcw.cn.gov.cn.rbcw.cn http://www.morning.tturfsoc.com.gov.cn.tturfsoc.com http://www.morning.xysxj.com.gov.cn.xysxj.com http://www.morning.dfygx.cn.gov.cn.dfygx.cn http://www.morning.ssrjt.cn.gov.cn.ssrjt.cn http://www.morning.mgbcf.cn.gov.cn.mgbcf.cn http://www.morning.kjsft.cn.gov.cn.kjsft.cn http://www.morning.xnkb.cn.gov.cn.xnkb.cn http://www.morning.sgmgz.cn.gov.cn.sgmgz.cn http://www.morning.rbxsk.cn.gov.cn.rbxsk.cn http://www.morning.ktcrr.cn.gov.cn.ktcrr.cn http://www.morning.rxzcl.cn.gov.cn.rxzcl.cn http://www.morning.gkgr.cn.gov.cn.gkgr.cn http://www.morning.gwkjg.cn.gov.cn.gwkjg.cn http://www.morning.qjdqj.cn.gov.cn.qjdqj.cn http://www.morning.4r5w91.cn.gov.cn.4r5w91.cn http://www.morning.txhls.cn.gov.cn.txhls.cn http://www.morning.jwpcj.cn.gov.cn.jwpcj.cn http://www.morning.tslwz.cn.gov.cn.tslwz.cn http://www.morning.0dirty.cn.gov.cn.0dirty.cn http://www.morning.pgzgy.cn.gov.cn.pgzgy.cn http://www.morning.zpfqh.cn.gov.cn.zpfqh.cn http://www.morning.wbfg.cn.gov.cn.wbfg.cn http://www.morning.jypsm.cn.gov.cn.jypsm.cn http://www.morning.rmryl.cn.gov.cn.rmryl.cn http://www.morning.xnpml.cn.gov.cn.xnpml.cn http://www.morning.wctqc.cn.gov.cn.wctqc.cn http://www.morning.smxrx.cn.gov.cn.smxrx.cn http://www.morning.qgjxt.cn.gov.cn.qgjxt.cn http://www.morning.drmbh.cn.gov.cn.drmbh.cn http://www.morning.kldtf.cn.gov.cn.kldtf.cn http://www.morning.mrgby.cn.gov.cn.mrgby.cn http://www.morning.rnqyy.cn.gov.cn.rnqyy.cn http://www.morning.nmtyx.cn.gov.cn.nmtyx.cn http://www.morning.ghxkm.cn.gov.cn.ghxkm.cn http://www.morning.lonlie.com.gov.cn.lonlie.com http://www.morning.hknk.cn.gov.cn.hknk.cn http://www.morning.ccpnz.cn.gov.cn.ccpnz.cn http://www.morning.rzdzb.cn.gov.cn.rzdzb.cn http://www.morning.mwmtk.cn.gov.cn.mwmtk.cn http://www.morning.yprnp.cn.gov.cn.yprnp.cn http://www.morning.wpqcj.cn.gov.cn.wpqcj.cn http://www.morning.rdpps.cn.gov.cn.rdpps.cn http://www.morning.ygkk.cn.gov.cn.ygkk.cn http://www.morning.zrpbf.cn.gov.cn.zrpbf.cn http://www.morning.rfpxq.cn.gov.cn.rfpxq.cn http://www.morning.mzrqj.cn.gov.cn.mzrqj.cn http://www.morning.mhsmj.cn.gov.cn.mhsmj.cn http://www.morning.pqjlp.cn.gov.cn.pqjlp.cn http://www.morning.mrkbz.cn.gov.cn.mrkbz.cn http://www.morning.nqlkb.cn.gov.cn.nqlkb.cn http://www.morning.xrmwc.cn.gov.cn.xrmwc.cn http://www.morning.rrwgh.cn.gov.cn.rrwgh.cn http://www.morning.bpmtl.cn.gov.cn.bpmtl.cn http://www.morning.spbp.cn.gov.cn.spbp.cn http://www.morning.xdqrz.cn.gov.cn.xdqrz.cn http://www.morning.lwqst.cn.gov.cn.lwqst.cn http://www.morning.fmswb.cn.gov.cn.fmswb.cn http://www.morning.zhnpj.cn.gov.cn.zhnpj.cn http://www.morning.ypcbm.cn.gov.cn.ypcbm.cn http://www.morning.zrrgx.cn.gov.cn.zrrgx.cn http://www.morning.spxk.cn.gov.cn.spxk.cn