opencv 图像处理:/滤波/腐蚀与膨胀/梯度/礼帽与黑帽,tophat,blackhat
opencv 图像处理/滤波
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | import cv2 import matplotlib.pyplot as plt import numpy as np img = cv2.imread( 'C:/Users/59925/Desktop/pytest/pics/minions-s.jpg' ) #读取文件 #平滑处理,即对图像进行滤波操作 #均值滤波,及规划化;或非均值滤波 mini1 = cv2.boxFilter(img, - 1 ,( 3 , 3 ),normalize = True ) #cv2.imshow('a',mini1) #高斯滤波 mini2 = cv2.GaussianBlur(img,( 3 , 3 ), 1 ) #cv2.imshow('b',mini2) #中值滤波(清晰) mini3 = cv2.medianBlur(img, 3 ) #cv2.imshow('c',mini3) #拼接展示 hstack = np.hstack((mini1,mini2,mini3)) print (mini3.shape,hstack.shape) #cv2.namedWindow('hstack',cv2.WINDOW_AUTOSIZE) cv2.imshow( 'hstack' ,hstack) cv2.waitKey( 0 ) #0表示按键盘任意键后执行下一行;若是其他数字如1000,则以毫秒级计时后执行下一行. cv2.destroyAllWindows() |
形态学处理方法,腐蚀与膨胀
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | import cv2 import matplotlib.pyplot as plt import numpy as np img = cv2.imread( 'C:/Users/59925/Desktop/pytest/pics/minions-s.jpg' ) #读取文件 #形态学,形态学图像处理(简称形态学)是指一系列处理图像形状特征的图像处理技术。 #形态学的基本思想是利用一种特殊的结构元来测量或提取输入图像中相应的形状或特征,以便进一步进行图像分析和目标识别。 #形态学方法的基础是集合论。 #腐蚀操作,黑色侵蚀白色。对去除白噪声很有用。 kernel = np.ones(( 3 , 3 ),dtype = np.uint8) erode = cv2.erode(img,kernel,iterations = 1 ) cv2.imshow( 'erode' ,erode) cv2.waitKey( 1000 ) #0表示按键盘任意键后执行下一行;若是其他数字如1000,则以毫秒级计时后执行下一行. cv2.destroyAllWindows() #膨胀操作 di_kernel = np.ones(( 3 , 3 ),dtype = np.uint8) dilate = cv2.dilate(erode,di_kernel,iterations = 1 ) cv2.imshow( 'dilate' ,dilate) cv2.waitKey( 1000 ) #0表示按键盘任意键后执行下一行;若是其他数字如1000,则以毫秒级计时后执行下一行. cv2.destroyAllWindows() #开运算:先腐蚀后膨胀 opening = cv2.morphologyEx(img,cv2.MORPH_OPEN,kernel) #闭运算,先膨胀再腐蚀 close = cv2.morphologyEx(img,cv2.MORPH_CLOSE,kernel) RES = np.hstack((opening,close)) cv2.imshow( 'RES' ,RES) cv2.waitKey( 0 ) #0表示按键盘任意键后执行下一行;若是其他数字如1000,则以毫秒级计时后执行下一行. cv2.destroyAllWindows() |
腐蚀-膨胀
原图,开运算与闭运算结果
梯度:获取边界信息
1 2 3 4 5 6 7 8 9 10 11 12 13 | import cv2 import matplotlib.pyplot as plt import numpy as np img = cv2.imread( 'C:/Users/59925/Desktop/pytest/pics/minions-s.jpg' ) #读取文件 kernel = np.ones(( 3 , 3 ),dtype = np.uint8) erode = cv2.erode(img,kernel,iterations = 1 ) di_kernel = np.ones(( 3 , 3 ),dtype = np.uint8) dilate = cv2.dilate(img,di_kernel,iterations = 1 ) gradient = cv2.morphologyEx(img,cv2.MORPH_GRADIENT,kernel) RES = np.hstack((img,dilate,erode,gradient)) cv2.imshow( 'RES' ,RES) cv2.waitKey( 0 ) #0表示按键盘任意键后执行下一行;若是其他数字如1000,则以毫秒级计时后执行下一行. cv2.destroyAllWindows() |
礼帽与黑帽
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | import cv2 import matplotlib.pyplot as plt import numpy as np img = cv2.imread( 'C:/Users/59925/Desktop/pytest/pics/minions-s.jpg' ) kernel = np.ones(( 3 , 3 ),dtype = np.uint8) #开运算:先腐蚀后膨胀 opening = cv2.morphologyEx(img,cv2.MORPH_OPEN,kernel) #闭运算,先膨胀再腐蚀 close = cv2.morphologyEx(img,cv2.MORPH_CLOSE,kernel) #tophat,原始输入-开运算结果 #blackhat,闭运算结果-原始输入 tophat = cv2.morphologyEx(img,cv2.MORPH_TOPHAT,kernel) blackhat = cv2.morphologyEx(img,cv2.MORPH_BLACKHAT,kernel) RES = np.hstack((img,opening,close,tophat,blackhat)) cv2.imshow( 'RES' ,RES) cv2.waitKey( 0 ) cv2.destroyAllWindows() |
标签:
opencv
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律