03 计算机视觉-opencv图像形态学处理
发布日期:2021-06-29 15:45:42
浏览次数:2
分类:技术文章
本文共 2434 字,大约阅读时间需要 8 分钟。
# 先定义一个opencv展示函数import cv2import matplotlib.pyplot as pltimport numpy as np%matplotlib inlinedef cv_show(name,img): cv2.imshow(name,img) cv2.waitKey(0) cv2.destroyAllWindows()
1 形态学-腐蚀操作
img = cv2.imread("dige.png")cv_show("img",img)plt.imshow(img)
kernel = np.ones((3,3),np.uint8)erosion = cv2.erode(img,kernel,iterations = 1)cv_show("erosion",erosion)plt.imshow(erosion)
pie = cv2.imread("pie.png")cv_show("pie",pie)plt.imshow(pie)
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()plt.imshow(res)
2 形态学-膨胀操作
img = cv2.imread("dige.png")cv_show("image",img)plt.imshow(img)
# 腐蚀kernel = np.ones((3,3),np.uint8) dige_erosion = cv2.erode(img,kernel,iterations = 1)cv_show("erosion",dige_erosion)plt.imshow(dige_erosion)
# 膨胀kernel = np.ones((3,3),np.uint8) dige_dilate = cv2.dilate(dige_erosion,kernel,iterations = 1)cv_show("dilate",dige_dilate)plt.imshow(dige_dilate)
pie = cv2.imread("pie.png")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))cv_show("res",res)plt.imshow(res)
3 开运算与闭运算
# 开:先腐蚀,再膨胀img = cv2.imread("dige.png")kernel = np.ones((5,5),np.uint8)opening = cv2.morphologyEx(img,cv2.MORPH_OPEN,kernel)cv_show("opening",opening)plt.imshow(opening)
# 闭:先膨胀,再腐蚀img = cv2.imread("dige.png")kernel = np.ones((5,5),np.uint8)closing = cv2.morphologyEx(img,cv2.MORPH_CLOSE,kernel)cv_show("closing",closing)plt.imshow(closing)
4 梯度运算
- 梯度=膨胀-腐蚀
pie = cv2.imread("pie.png")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))cv_show("res",res)plt.imshow(res)
gradient = cv2.morphologyEx(pie,cv2.MORPH_GRADIENT,kernel)cv_show("gradient",gradient)plt.imshow(gradient)
5 礼帽与黑帽
- 礼帽 = 原始输入-开运算结果
- 黑帽 = 闭运算-原始输入
#礼帽img = cv2.imread("dige.png")tophat = cv2.morphologyEx(img, cv2.MORPH_TOPHAT, kernel)cv_show("tophat",tophat)plt.imshow(tophat)
#黑帽img = cv2.imread("dige.png")blackhat = cv2.morphologyEx(img,cv2.MORPH_BLACKHAT, kernel)cv_show("blackhat",blackhat)plt.imshow(blackhat)
转载地址:https://codingchaozhang.blog.csdn.net/article/details/99474701 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
第一次来,支持一个
[***.219.124.196]2024年04月13日 13时32分55秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
为什么说卷积神经网络,是深度学习算法应用最成功的领域之一?
2019-04-29
在电网工作,有多高大上?
2019-04-29
「2020年大学生电子设计竞赛分享」电源题,省一等奖!
2019-04-29
又一国产开源微内核操作系统上线!源代码已开放下载
2019-04-29
10年老兵!从大学毕业生到嵌入式系统工程师的修炼之道……
2019-04-29
如何才能学好单片机?
2019-04-29
一根网线有这么多“花样”,你知道吗?
2019-04-29
雷军1994年写的诗一样的代码,我把它运行起来了!
2019-04-29
2020年大学生电子设计竞赛,B题,单相在线式不间断电源,详细技术方案!
2019-04-29
大佬终于把鸿蒙OS讲明白了,收藏了!
2019-04-29
知乎热议:嵌入式开发中C++好用吗?
2019-04-29
这100道Linux常见面试题,看看你会多少?
2019-04-29
嵌入式开发中常用的几种通信接口总结
2019-04-29
什么?电路板上还要喷漆?
2019-04-29
读博读废了是种什么样的体验?
2019-04-29
2020年,技术圈十大“翻车”事件!
2019-04-29
C语言状态机编程思想
2019-04-29
为什么很多电器设备都要使用单片机?
2019-04-29
在中国做操作系统研发 20 年是种什么体验?
2019-04-29
PCB走线角度为90度到底行不行?
2019-04-29