博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python opencv形态学变换
阅读量:3898 次
发布时间:2019-05-23

本文共 2978 字,大约阅读时间需要 9 分钟。

图像侵蚀

用于消除小的白色噪声

import cv2import numpy as npfrom matplotlib import pyplot as pltimg = cv2.imread('number.jpg')kernel = np.ones((5,5),np.uint8)erosion = cv2.erode(img,kernel,iterations= 1)plt.subplot(121),plt.imshow(img),plt.title('original'),plt.xticks([]),plt.yticks([])plt.subplot(122),plt.imshow(erosion),plt.title('erosion'),plt.xticks([]),plt.yticks([])plt.show()

在这里插入图片描述

图片扩展
与侵蚀相反

import cv2import numpy as npfrom matplotlib import pyplot as pltimg = cv2.imread('number.jpg')kernel = np.ones((5,5),np.uint8)erosion = cv2.dilate(img,kernel,iterations= 1)plt.subplot(121),plt.imshow(img),plt.title('original'),plt.xticks([]),plt.yticks([])plt.subplot(122),plt.imshow(erosion),plt.title('dilate'),plt.xticks([]),plt.yticks([])plt.show()

在这里插入图片描述

开运算
向侵蚀后扩展,用于消除噪音

import cv2import numpy as npfrom matplotlib import pyplot as pltimg = cv2.imread('number.jpg')kernel = np.ones((5,5),np.uint8)erosion = cv2.morphologyEx(img,cv2.MORPH_OPEN,kernel)plt.subplot(121),plt.imshow(img),plt.title('original'),plt.xticks([]),plt.yticks([])plt.subplot(122),plt.imshow(erosion),plt.title('openning'),plt.xticks([]),plt.yticks([])plt.show()

在这里插入图片描述

闭运算
与开运算相反

import cv2import numpy as npfrom matplotlib import pyplot as pltimg = cv2.imread('number.jpg')kernel = np.ones((5,5),np.uint8)erosion = cv2.morphologyEx(img,cv2.MORPH_CLOSE,kernel)plt.subplot(121),plt.imshow(img),plt.title('original'),plt.xticks([]),plt.yticks([])plt.subplot(122),plt.imshow(erosion),plt.title('close'),plt.xticks([]),plt.yticks([])plt.show()

在这里插入图片描述

形态学梯度
利用对图像的膨胀和腐蚀的组合使用,从而提取了物体的轮廓

import cv2import numpy as npfrom matplotlib import pyplot as pltimg = cv2.imread('number.jpg')kernel = np.ones((5,5),np.uint8)erosion = cv2.morphologyEx(img,cv2.MORPH_GRADIENT,kernel)plt.subplot(121),plt.imshow(img),plt.title('original'),plt.xticks([]),plt.yticks([])plt.subplot(122),plt.imshow(erosion),plt.title('gradient'),plt.xticks([]),plt.yticks([])plt.show()

在这里插入图片描述

顶帽
礼帽指的是原始图像与其进行开运算后的图像进行一个差,对于差别之处显示其原有图色

import cv2import numpy as npfrom matplotlib import pyplot as pltimg = cv2.imread('number.jpg')kernel = np.ones((5,5),np.uint8)openning = cv2.morphologyEx(img,cv2.MORPH_OPEN,kernel)tophat = cv2.morphologyEx(img,cv2.MORPH_TOPHAT,kernel)plt.subplot(131),plt.imshow(img),plt.title('original'),plt.xticks([]),plt.yticks([])plt.subplot(132),plt.imshow(openning),plt.title('openning'),plt.xticks([]),plt.yticks([])plt.subplot(133),plt.imshow(tophat),plt.title('tophat'),plt.xticks([]),plt.yticks([])plt.show()

在这里插入图片描述

黑帽
黑帽指的是原始图像与其进行闭运算后的图像进行一个差,对于差别之处显示原有图色的反颜色

import cv2import numpy as npfrom matplotlib import pyplot as pltimg = cv2.imread('number.jpg')kernel = np.ones((5,5),np.uint8)close = cv2.morphologyEx(img,cv2.MORPH_CLOSE,kernel)blackhat = cv2.morphologyEx(img,cv2.MORPH_BLACKHAT,kernel)plt.subplot(131),plt.imshow(img),plt.title('original'),plt.xticks([]),plt.yticks([])plt.subplot(132),plt.imshow(close),plt.title('close'),plt.xticks([]),plt.yticks([])plt.subplot(133),plt.imshow(blackhat),plt.title('blackhat'),plt.xticks([]),plt.yticks([])plt.show()

在这里插入图片描述

转载地址:http://yhben.baihongyu.com/

你可能感兴趣的文章
如何写一本书?
查看>>
加班能体现编程的热情吗?
查看>>
Hadley Wickham:一个改变了R的人
查看>>
glibc 指导委员会解散声明
查看>>
Linux创始者托瓦兹谈及IoT --「安全在其次」
查看>>
传感器数据分析(Sensor Data Analytics)是什么?
查看>>
智能硬件开发如何选择低功耗MCU?
查看>>
阿里感悟(十)如何写好简历
查看>>
阿里感悟(十一)如何准备面试
查看>>
软件架构入门
查看>>
80 多个 Linux 系统管理员必备的监控工具
查看>>
OOD的原则
查看>>
Tool to trace local function calls in Linux
查看>>
Linux 下查询 DNS 服务器信息
查看>>
ulimit 里的 file size 的 block 单位是多少?
查看>>
linux下查看端口对应的进程
查看>>
将 gdb 用作函数跟踪器 (Function Tracer)
查看>>
原 GCC一些有用的技巧
查看>>
yum 变量追加的方法
查看>>
2倍速的下一代Bluetooth,「Bluetooth 5」发布
查看>>