基于python的opencv项目实战P4

Ruth ·
更新时间:2024-11-13
· 759 次阅读

04-图像形态学处理

b站地址:https://b23.tv/av77390697/p4

形态学-腐蚀操作 import cv2 import matplotlib.pyplot as plt import numpy as np get_ipython().run_line_magic('matplotlib','inline') #腐蚀dige img = cv2.imread('dige.png') cv2.imshow('img',img) cv2.waitKey(0) cv2.destroyAllWindows() kernel = np.ones((5,5),np.uint8) erosion = cv2.erode(img,kernel,iterations = 2) # kernel 为5x5方格 ; 迭代次数2 cv2.imshow('erosion',erosion) cv2.waitKey(0) cv2.destroyAllWindows() #腐蚀pie pie = cv2.imread('pie.jpg') cv2.imshow('pie',pie) cv2.waitKey(0) cv2.destroyAllWindows() #不同迭代次数对比 kernel = np.ones((30,30),np.uint8) erosion_1= cv2.erode(pie,kernel,iterations = 1) erosion_2= cv2.erode(pie,kernel,iterations = 2) erosion_3= cv2.erode(pie,kernel,iterations = 3) res = np.hstack((erosion_1,erosion_2,erosion_3)) cv2.imshow('res',res) cv2.waitKey(0) cv2.destroyAllWindows() 形态学-膨胀操作 #导入图片 img = cv2.imread('dige.png') cv2.imshow('img',img) cv2.waitKey(0) cv2.destroyAllWindows() #去毛刺 kernel = np.ones((3,3),np.uint8) dige_erosion = cv2.erode(img,kernel,iterations = 1) # kernel 为3x3方格 ; 迭代次数 cv2.imshow('erosion',erosion) cv2.waitKey(0) cv2.destroyAllWindows() #膨胀操作 kernel = np.ones((5,5),np.uint8) dige_dilate = cv2.dilate(dige_erosion,kernel,iterations = 1) cv2.imshow('dilate',dige_dilate) cv2.waitKey(0) cv2.destroyAllWindows() pie = cv2.imread('pie.jpg') #不同迭代次数 kernel = np.ones((30,30),np.uint8) dilate_1= cv2.dilate(pie,kernel,iterations = 1) dilate_2= cv2.dilate(pie,kernel,iterations = 2) dilate_3= cv2.dilate(pie,kernel,iterations = 3) res = np.hstack((dilate_1,dilate_2,dilate_3)) cv2.imshow('res',res) cv2.waitKey(0) cv2.destroyAllWindows() 开运算与闭运算 #开运算:先腐蚀,再膨胀 img = cv2.imread('dige.png') kernel = np.ones((3,3),np.uint8) opening = cv2.morphologyEx(img,cv2.MORPH_OPEN,kernel) cv2.imshow('opening',opening) cv2.waitKey(0) cv2.destroyAllWindows() #闭运算:先膨胀,再腐蚀 img = cv2.imread('dige.png') kernel = np.ones((3,3),np.uint8) closing = cv2.morphologyEx(img,cv2.MORPH_CLOSE,kernel) cv2.imshow('closing',closing) cv2.waitKey(0) cv2.destroyAllWindows() 梯度运算 #梯度=膨胀-腐蚀 #得到膨胀与腐蚀 pie = cv2.imread('pie.jpg') kernel = np.ones((7,7),np.uint8) dilate = cv2.dilate(pie,kernel,iterations = 2) erosion = cv2.erode(pie,kernel,iterations = 2) res = np.hstack((dilate,erosion)) cv2.imshow('res',res) cv2.waitKey(0) cv2.destroyAllWindows() #边界信息 gradient = cv2.morphologyEx(pie,cv2.MORPH_GRADIENT,kernel) cv2.imshow('gradient',gradient) cv2.waitKey(0) cv2.destroyAllWindows() 礼帽与黑帽

• 礼帽=原始输入-开运算
• 黑帽=闭运算-原始输入

#礼帽 img = cv2.imread('dige.png') tophat = cv2.morphologyEx(img,cv2.MORPH_TOPHAT,kernel) cv2.imshow('tophat',tophat) cv2.waitKey(0) cv2.destroyAllWindows() #黑帽 img = cv2.imread('dige.png') blackhat = cv2.morphologyEx(img,cv2.MORPH_BLACKHAT,kernel) cv2.imshow('blackhat',blackhat) cv2.waitKey(0) cv2.destroyAllWindows()
作者:G.JAY



p4 opencv Python

需要 登录 后方可回复, 如果你还没有账号请 注册新账号