西安通程建设工程 网站,seo实战密码完整版,德宏网站制作,如何网站建设策划方案通过阈值化分割可以得到二值图#xff0c;但往往会出现图像中物体形态不完整#xff0c;变的残缺#xff0c;可以通过形态学处理#xff0c;使其变得丰满#xff0c;或者去除掉多余的像素。常用的形态学处理算法包括#xff1a;腐蚀#xff0c;膨胀#xff0c;开运算但往往会出现图像中物体形态不完整变的残缺可以通过形态学处理使其变得丰满或者去除掉多余的像素。常用的形态学处理算法包括腐蚀膨胀开运算闭运算形态学梯度顶帽运算和底帽运算。 1. 腐蚀 腐蚀操作类似于中值平滑也有一个核但不进行卷积运算而是取核中像素值的最小值代替锚点位置的像素值这样就会使图像中较暗的区域面积增大较亮的的区域面积减小。如果是一张黑底白色前景的二值图就会使白色的前景物体颜色变小就像被腐蚀了一样。
#coding:utf-8
import cv2 as cv
img cv.imread(rC:\Users\mzd\Desktop\opencv\images.jpg)
img_cvt cv.cvtColor(img,cv.COLOR_BGR2GRAY)
ret,img_thr cv.threshold(img_cvt,200,255,cv.THRESH_BINARY_INV)
#cv2.threshold() 是 OpenCV 中用于图像阈值处理的函数。阈值处理是一种将图像转换为二值图像的方法通过将像素值与一个预先定义的阈值进行比较将像素分为两个类别大于阈值的为一类小于等于阈值的为另一类。
kernel cv.getStructuringElement(cv.MORPH_RECT,(3,5))
#cv2.getStructuringElement() 是 OpenCV 中用于创建结构元素的函数常用于形态学操作如腐蚀和膨胀。结构元素是一个小的形状它在图像上滑动用于改变图像的形状。
dst cv.erode(img_thr,kernel,iterations1)
cv.imshow(img,img)
cv.imshow(img_thr,img_thr)
cv.imshow(dst,dst)
cv.waitKey(0)
cv.destroyAllWindows()cv2.erode() 是 OpenCV 中用于进行腐蚀操作的函数。腐蚀是形态学操作的一种它通过在图像中滑动结构元素kernel来减小图像中的白色区域前景对象。它常常被用于去除图像中的小白色噪声或者分离两个连接在一起的物体。 白色的目标变小相反黑色的目标变大腐蚀操作将减小图像中的白色区域可以用于去除小的白色噪声或者分离连接在一起的物体。
基本语法如下
erosion cv2.erode(src, kernel[, dst[, anchor[, iterations[, borderType[, borderValue]]]]])参数说明
src: 输入图像单通道二进制图像黑白图像。kernel: 结构元素可以使用 cv2.getStructuringElement() 创建。dst可选: 输出图像。anchor可选: 结构元素的锚点默认为 (-1, -1) 表示结构元素的中心。iterations可选: 腐蚀的迭代次数默认为1。borderType可选: 边界处理的方式通常为默认值 cv2.BORDER_CONSTANT。borderValue可选: 边界的填充值默认为0。
2.膨胀 膨胀操作和腐蚀操作正好相反是取核中像素值的最大值代替锚点位置的像素值这样会使图像中较亮的区域增大较暗的区域减小。如果是一张黑底白色前景的二值图就会使白色的前景物体颜色面积变大就像膨胀了一样。
#coding:utf-8
import cv2 as cv
img cv.imread(rC:\Users\mzd\Desktop\opencv\images.jpg)
img_cvt cv.cvtColor(img,cv.COLOR_BGR2GRAY)
ret,img_thr cv.threshold(img_cvt,200,255,cv.THRESH_BINARY_INV)
#cv2.threshold() 是 OpenCV 中用于图像阈值处理的函数。阈值处理是一种将图像转换为二值图像的方法通过将像素值与一个预先定义的阈值进行比较将像素分为两个类别大于阈值的为一类小于等于阈值的为另一类。
kernel cv.getStructuringElement(cv.MORPH_RECT,(3,5))
#cv2.getStructuringElement() 是 OpenCV 中用于创建结构元素的函数常用于形态学操作如腐蚀和膨胀。结构元素是一个小的形状它在图像上滑动用于改变图像的形状。
dst cv.dilate(img_thr,kernel,iterations1)cv.imshow(img,img)
cv.imshow(img_thr,img_thr)
cv.imshow(dst,dst)
cv.waitKey(0)
cv.destroyAllWindows()cv2.dilate() 是 OpenCV 中用于进行膨胀操作的函数。膨胀是形态学操作的一种它通过在图像中滑动结构元素kernel来增加图像中的白色区域前景对象。膨胀操作将增加图像中的白色区域膨胀常常被用于连接图像中的白色区域或者扩展物体的大小。
基本语法如下
dilation cv2.dilate(src, kernel[, dst[, anchor[, iterations[, borderType[, borderValue]]]]])参数说明
src: 输入图像单通道二进制图像黑白图像。kernel: 结构元素可以使用 cv2.getStructuringElement() 创建。dst可选: 输出图像。anchor可选: 结构元素的锚点默认为 (-1, -1) 表示结构元素的中心。iterations可选: 膨胀的迭代次数默认为1。borderType可选: 边界处理的方式通常为默认值 cv2.BORDER_CONSTANT。borderValue可选: 边界的填充值默认为0。
3.开运算闭运算顶帽顶帽
开运算先进行腐蚀操作后进行膨胀操作主要用来去除一些较亮的部分即先腐蚀掉不要的部分再进行膨胀。闭运算先进行膨胀操作后进行腐蚀操作主要用来去除一些较暗的部分。形态学梯度膨胀运算结果减去腐蚀运算结果可以拿到轮廓信息。顶帽运算原图像减去开运算结果。底帽运算原图像减去闭运算结果。 #coding:utf-8
import cv2 as cv
import matplotlib.pyplot as plt
img cv.imread(rC:\Users\mzd\Desktop\opencv\images.jpg)
img_cvt cv.cvtColor(img,cv.COLOR_BGR2GRAY)
#cv2.cvtColor() 是 OpenCV 中用于进行颜色空间转换的函数。颜色空间转换是图像处理中常见的操作用于将图像从一种颜色表示转换为另一种。常见的颜色空间包括灰度空间、RGB空间、HSV空间等。
ret,img_thr cv.threshold(img_cvt,200,255,cv.THRESH_BINARY_INV)
#cv2.threshold() 是 OpenCV 中用于图像阈值处理的函数。阈值处理是一种将图像转换为二值图像的方法通过将像素值与一个预先定义的阈值进行比较将像素分为两个类别大于阈值的为一类小于等于阈值的为另一类。
kernel cv.getStructuringElement(cv.MORPH_RECT,(3,5))
#cv2.getStructuringElement() 是 OpenCV 中用于创建结构元素的函数常用于形态学操作如腐蚀和膨胀。结构元素是一个小的形状它在图像上滑动用于改变图像的形状。
open cv.morphologyEx(img_thr,cv.MORPH_OPEN,kernel,iterations1)
#cv2.morphologyEx()是OpenCV 中进行形态学操作的函数它可以实现一些基本的形态学操作如膨胀、腐蚀、开运算、闭运算等。形态学操作主要用于图像处理中的形状分析和图像变换。cv2.MORPH_OPEN: 开运算先腐蚀后膨胀。
close cv.morphologyEx(img_thr,cv.MORPH_CLOSE,kernel,iterations1)
#cv2.morphologyEx()是OpenCV 中进行形态学操作的函数它可以实现一些基本的形态学操作如膨胀、腐蚀、开运算、闭运算等。形态学操作主要用于图像处理中的形状分析和图像变换。cv2.MORPH_CLOSE: 闭运算先膨胀后腐蚀
gradient cv.morphologyEx(img_thr,cv.MORPH_GRADIENT,kernel,iterations1)
#cv2.MORPH_GRADIENT: 梯度运算膨胀图减去腐蚀图。
tophat cv.morphologyEx(img_thr,cv.MORPH_TOPHAT,kernel,iterations1)
#cv2.MORPH_TOPHAT: 顶帽运算原始图像减去开运算图像。
blackhat cv.morphologyEx(img_thr,cv.MORPH_BLACKHAT,kernel,iterations1)
#cv2.MORPH_BLACKHAT: 黑帽运算闭运算图像减去原始图像。
images[img_thr,open,close,gradient,tophat,blackhat]
titles[img_thr,open,close,gradient,tophat,blackhat]
for i in range(6):plt.subplot(2,3,i1),plt.imshow(images[i],gray)plt.title(titles[i])plt.xticks([]), plt.yticks([])
plt.show()cv2.morphologyEx() 是 OpenCV 中进行形态学操作的函数它可以实现一些基本的形态学操作如膨胀、腐蚀、开运算、闭运算等。形态学操作主要用于图像处理中的形状分析和图像变换。
基本语法如下
dst cv2.morphologyEx(src, op, kernel[, dst[, anchor[, iterations[, borderType[, borderValue]]]]])参数说明
src: 输入图像。op: 形态学操作的类型可以是以下之一 cv2.MORPH_OPEN: 开运算先腐蚀后膨胀。cv2.MORPH_CLOSE: 闭运算先膨胀后腐蚀。cv2.MORPH_GRADIENT: 梯度运算膨胀图减去腐蚀图。cv2.MORPH_TOPHAT: 顶帽运算原始图像减去开运算图像。cv2.MORPH_BLACKHAT: 黑帽运算闭运算图像减去原始图像。 kernel: 结构元素可以使用 cv2.getStructuringElement() 创建。dst可选: 输出图像。anchor可选: 结构元素的锚点默认为 (-1, -1) 表示结构元素的中心。iterations可选: 迭代次数默认为1。borderType可选: 边界处理的方式通常为默认值 cv2.BORDER_CONSTANT。borderValue可选: 边界的填充值默认为0。