博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OpenCV+python:膨胀和腐蚀
阅读量:3948 次
发布时间:2019-05-24

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

1,概念及原理:

膨胀(Dilating) (或)
(1)将图像 A 与任意形状的内核 (B),通常为正方形或圆形,进行卷积。
(2)内核 B 有一个可定义的 锚点, 通常定义为内核中心点。
(3)进行膨胀操作时,将内核 B 划过图像A,将内核 B 覆盖区域的最大相素值提取,并代替锚点位置的相素。显然,这一最大化操作将会导致图像中的亮区开始”扩展” (因此有了术语膨胀 dilation )。
以3*3的内核为例:
在这里插入图片描述在这里插入图片描述
腐蚀(Eroding) (与)
(1)腐蚀在形态学操作家族里是膨胀操作的孪生姐妹。它提取的是内核覆盖下的相素最小值。
(2)进行腐蚀操作时,将内核 B 划过图像,将内核 B 覆盖区域的最小相素值提取,并代替锚点位置的相素。

在这里插入图片描述在这里插入图片描述值得注意的是:腐蚀和膨胀是对白色部分(高亮部分)而言的,不是黑色部分。 膨胀就是图像中的高亮部分进行膨胀,“邻域扩张”,效果图拥有比原图更大的高亮区域。腐蚀就是原图中高亮部分被腐蚀,“邻域被蚕食”,效果图拥有比原图更小的高亮区域。

源代码:

import cv2 as cvimport numpy as npdef erode_demo(image):   # print(image.shape)    gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY)    ret, binary = cv.threshold(gray, 0, 255, cv.THRESH_BINARY | cv.THRESH_OTSU)    #cv.imshow("binary", binary)    kernel = cv.getStructuringElement(cv.MORPH_RECT, (15, 15))#定义结构元素的形状和大小    dst = cv.erode(binary, kernel)#腐蚀操作    cv.imshow("erode_demo", dst)def dilate_demo(image):    #print(image.shape)    gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY)    ret, binary = cv.threshold(gray, 0, 255, cv.THRESH_BINARY | cv.THRESH_OTSU)    #cv.imshow("binary", binary)    kernel = cv.getStructuringElement(cv.MORPH_RECT, (5, 5))#定义结构元素的形状和大小    dst = cv.dilate(binary, kernel)#膨胀操作    cv.imshow("dilate_demo", dst)src = cv.imread("F:/images/test01.png")cv.namedWindow("input image", cv.WINDOW_AUTOSIZE)cv.imshow("input image", src)erode_demo(src)dilate_demo(src)cv.waitKey(0)cv.destroyAllWindows()

运行结果:

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

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

你可能感兴趣的文章
使用ADO操作MDB,关注数据类型
查看>>
使用windows自带Zip命令压缩文件
查看>>
windows获得文件大小
查看>>
Host 'ETCV3' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'
查看>>
mysql高版本兼容老版本的密码格式
查看>>
OCILIB在VS2008中的使用
查看>>
OCILIB VC2008 效率测试
查看>>
PL/SQL设置NUMBER显示为字符串
查看>>
linux ftp 脚本 -- 使用程序执行脚本
查看>>
MFC CListBox的使用
查看>>
VS2008 CString转char字符串
查看>>
VS2008 如何设置mfc对话框最小化
查看>>
VS2008向MFC 对话框 添加托盘图标(显示和消失)
查看>>
托盘使用--最小化到托盘,双击托盘立即还原显示
查看>>
ORACLE客户端连接配置 tnsnames.ora内容
查看>>
Ubuntu 12.04添加开机启动项
查看>>
MFC对话框使用标签页控件
查看>>
redhat中vsftp开机自启动
查看>>
修改RedHat默认登录方式
查看>>
按字段值分组表中记录
查看>>