整数转换 wpf jsf serialization lambda enums primefaces stack directory 网站后台管理模板 网络营销视频 ppt视频教程下载 php项目实战 华为路由器ipv6配置 art神经网络 linux关闭mysql mysql增删改查语句 js教程文档 python连接mysql python参考手册 java语法基础 java实现 数据结构java版 java程序实例 javaswitch语句 java接口的修饰符 java怎么编程 linux的安装 linux镜像安装 java游戏开发 垃圾邮件数据集 局域网助手 内存整理软件 rendercontrol linux命令详解词典 易语言进度条 pr滤镜插件 神剪辑教程 网络克隆 cdr字体加粗
当前位置: 首页 > 学习教程  > python

OpenCV+Python图像形态学操作

2021/2/7 11:06:08 文章标签: 测试文章如有侵权请发送至邮箱809451989@qq.com投诉后文章立即删除

形态学-腐蚀操作 import cv2 img cv2.imread(D:\\Desktop\\opencv\\dizai.jpg) cv2.imshow(img, img) cv2.waitKey(0) cv2.destroyAllWindows()原图: #腐蚀一次 kernel np.ones((3,3),np.uint8) #np.ones(3,3)表示腐蚀的单位区域的大小 erosion cv2.erode(im…

形态学-腐蚀操作

import cv2
img = cv2.imread('D:\\Desktop\\opencv\\dizai.jpg')
cv2.imshow('img', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

原图:
在这里插入图片描述

#腐蚀一次
kernel = np.ones((3,3),np.uint8) 
#np.ones(3,3)表示腐蚀的单位区域的大小
erosion = cv2.erode(img,kernel,iterations = 1)
# iterations表示腐蚀次数
cv2.imshow('erosion', erosion)
cv2.waitKey(0)
cv2.destroyAllWindows()

腐蚀一次效果:
在这里插入图片描述
示例2:

kernel = np.ones((30,30),np.uint8) 
erosion_1 = cv2.erode(circle,kernel,iterations = 1) #腐蚀一次
erosion_2 = cv2.erode(circle,kernel,iterations = 2) #腐蚀两次
erosion_3 = cv2.erode(circle,kernel,iterations = 3) #腐蚀三次
res = np.hstack((erosion_1,erosion_2,erosion_3))
cv2.imshow('res', res)
cv2.waitKey(0)
cv2.destroyAllWindows()

效果:

在这里插入图片描述

形态学-膨胀操作

#先腐蚀3次看一下效果
kernel = np.ones((3,3),np.uint8) 
dige_erosion = cv2.erode(img,kernel,iterations = 3)

cv2.imshow('erosion', erosion)
cv2.waitKey(0)
cv2.destroyAllWindows()

在这里插入图片描述

#膨胀5次的效果
kernel = np.ones((3,3),np.uint8) 
dige_dilate = cv2.dilate(dige_erosion,kernel,iterations = 5)

cv2.imshow('dilate', dige_dilate)
cv2.waitKey(0)
cv2.destroyAllWindows()

在这里插入图片描述
示例2:

circle = cv2.imread('D:\\Desktop\\opencv\\circle.jpg')

kernel = np.ones((30,30),np.uint8) 
dilate_1 = cv2.dilate(circle,kernel,iterations = 1)
dilate_2 = cv2.dilate(circle,kernel,iterations = 2)
dilate_3 = cv2.dilate(circle,kernel,iterations = 3)
res = np.hstack((dilate_1,dilate_2,dilate_3))
cv2.imshow('res', res)
cv2.waitKey(0)
cv2.destroyAllWindows()

效果:

在这里插入图片描述

开运算与闭运算

# 开:先腐蚀,再膨胀
img = cv2.imread('D:\\Desktop\\opencv\\dizai.jpg')

kernel = np.ones((5,5),np.uint8) 
opening = cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel)

cv2.imshow('opening', opening)
cv2.waitKey(0)
cv2.destroyAllWindows()

效果:
在这里插入图片描述

# 闭:先膨胀,再腐蚀 
img = cv2.imread('D:\\Desktop\\opencv\\dizai.jpg')
kernel = np.ones((5,5),np.uint8) 
closing = cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel)

cv2.imshow('closing', closing)
cv2.waitKey(0)
cv2.destroyAllWindows()

效果:
在这里插入图片描述

梯度运算

梯度=膨胀-腐蚀

#显示膨胀和腐蚀效果
pie = cv2.imread('D:\\Desktop\\opencv\\circle.jpg')
kernel = np.ones((7,7),np.uint8) 
dilate = cv2.dilate(pie,kernel,iterations = 5)
erosion = cv2.erode(pie,kernel,iterations = 5)

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('D:\\Desktop\\opencv\\dizai.jpg')
tophat = cv2.morphologyEx(img, cv2.MORPH_TOPHAT, kernel)
cv2.imshow('tophat', tophat)
cv2.waitKey(0)
cv2.destroyAllWindows()

在这里插入图片描述

#黑帽
img = cv2.imread('D:\\Desktop\\opencv\\dizai.jpg')
blackhat  = cv2.morphologyEx(img,cv2.MORPH_BLACKHAT, kernel)
cv2.imshow('blackhat ', blackhat )
cv2.waitKey(0)
cv2.destroyAllWindows()

在这里插入图片描述


本文链接: http://www.dtmao.cc/news_show_2000241.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?