OpenCV---膨胀与腐蚀
膨胀
腐蚀
一:膨胀实现dilate
import cv2 as cv
import numpy as np def dilate_demo(image): #膨胀
print(image.shape)
gray = cv.cvtColor(image,cv.COLOR_BGR2GRAY)
ret,binary = cv.threshold(gray,,,cv.THRESH_BINARY_INV|cv.THRESH_OTSU)
cv.imshow("binary",binary)
kernel = cv.getStructuringElement(cv.MORPH_RECT,(,))
dst = cv.dilate(binary,kernel)
cv.imshow("dilate_demo",dst) src = cv.imread("./5.png") #读取图片
cv.namedWindow("input image",cv.WINDOW_AUTOSIZE) #创建GUI窗口,形式为自适应
cv.imshow("input image",src) #通过名字将图像和窗口联系 dilate_demo(src) cv.waitKey() #等待用户操作,里面等待参数是毫秒,我们填写0,代表是永远,等待用户操作
cv.destroyAllWindows() #销毁所有窗口
二:实现腐蚀erode
def erode_demo(image): #腐蚀
print(image.shape)
gray = cv.cvtColor(image,cv.COLOR_BGR2GRAY)
ret,binary = cv.threshold(gray,,,cv.THRESH_BINARY_INV|cv.THRESH_OTSU)
cv.imshow("binary",binary)
kernel = cv.getStructuringElement(cv.MORPH_RECT,(3,3)) #可以修改卷积核大小来增加腐蚀效果,越大腐蚀越强
dst = cv.erode(binary,kernel)
cv.imshow("erode_demo",dst) src = cv.imread("./5.png") #读取图片
cv.namedWindow("input image",cv.WINDOW_AUTOSIZE) #创建GUI窗口,形式为自适应
cv.imshow("input image",src) #通过名字将图像和窗口联系 erode_demo(src) cv.waitKey() #等待用户操作,里面等待参数是毫秒,我们填写0,代表是永远,等待用户操作
cv.destroyAllWindows() #销毁所有窗口
kernel = cv.getStructuringElement(cv.MORPH_RECT,(,))
相关知识补充
(一)可以看做膨胀是将白色区域扩大,腐蚀是将黑色区域扩大
(二)可以不进行灰度处理,对彩色图片进行处理
(1)膨胀
kernel = cv.getStructuringElement(cv.MORPH_RECT, (, ))
dst = cv.dilate(src,kernel)
cv.imshow("result",dst)
(2)腐蚀
kernel = cv.getStructuringElement(cv.MORPH_RECT, (, ))
dst = cv.erode(src,kernel)
cv.imshow("result",dst)
(三)getStructuringElement方法
推文:OpenCV中获取不同形状的结构元素getStructuringElement
自定义一个结构元素kernel,要声明一个Mat,然后对Mat的元素赋值;这种方法灵活但略显复杂
OpenCV提供了一个函数getStructuringElement,可以获取常用的结构元素的形状:矩形(包括线形)、椭圆(包括圆形)及十字形。
getStructuringElement的内部并没有什么优化实现,只是封装了一下功能。其原理同样是声明一个Mat,然后求形状,指定Mat的值。
十字形为单线宽。
总之:getStructuringElement是一种更加简便的方法实现一个kernel
MORPH_RECT, MORPH_ELLIPSE, MORPH_CROSS
参数:
cv.getStructuringElement(cv.MORPH_RECT, (, ))
def getStructuringElement(shape, ksize, anchor=None): # real signature unknown; restored from __doc__
第一个参数shape:表示内核的形状,有三种形状可以选择
矩形:MORPH_RECT;
交叉形:MORPH_CORSS;
椭圆形:MORPH_ELLIPSE;
第二个参数ksize:是内核的尺寸(n,n)
第三个参数anchor:锚点的位置
返回值:
getStructuringElement函数会返回指定形状和尺寸的结构元素。
OpenCV---膨胀与腐蚀的更多相关文章
- OpenCV膨胀与腐蚀
膨胀与腐蚀 本篇博客主要介绍使用OpenCV中的函数接口实现对一个图片的腐蚀或者膨胀,听起来有点像是对图像进行放大和缩小的意思,如果你也是这样认为,那我只能说你跟我一样肤浅!!在OpenCV中几乎所有 ...
- OpenCV膨胀和腐蚀示例代码
#include<cv.h> #include<highgui.h> int main(int argc, char** argv) { IplImage* img = cvL ...
- OpenCV——膨胀与腐蚀
- 图像的膨胀与腐蚀——OpenCV与C++的具体实现
目录 1. 膨胀与腐蚀的原理 2. 膨胀的具体实现 1) OpenCV实现 2) C/C++实现 3) 验证与结果 3. 腐蚀的具体实现 1. 膨胀与腐蚀的原理 膨胀与腐蚀是数学形态学在图像处理中最基 ...
- OpenCV——图像处理入门:膨胀与腐蚀、图像模糊、边缘检测
全部外部依赖项: opencv_aruco341d.lib opencv_bgsegm341d.lib opencv_calib3d341d.lib opencv_bioinspired341d.li ...
- opencv之膨胀与腐蚀
腐蚀和膨胀 Erosion/Dilation erosion/dilation,用白话说,就是让图像亮的区域收缩和扩张. 原理 我们定义一个卷积核矩阵.这个矩阵可以是任何形状的,但通常而言,是矩形或者 ...
- 学习 opencv---(9)形态学图像处理(一):膨胀和腐蚀
本篇文章中,我们一起探究了图像处理中,最基本的形态学运算--膨胀与腐蚀.浅墨在文章开头友情提醒,用人物照片做腐蚀和膨胀的素材图片得到的效果会比较惊悚,毁三观的,不建议尝试.......... 一.理论 ...
- Atitit 图像处理—图像形态学(膨胀与腐蚀)
Atitit 图像处理-图像形态学(膨胀与腐蚀) 1.1. 膨胀与腐蚀1 1.2. 图像处理之二值膨胀及应用2 1.3. 测试原理,可以给一个5*5pic,测试膨胀算法5 1.4. Photoshop ...
- paper 76:膨胀、腐蚀、开、闭运算——数字图像处理中的形态学
膨胀.腐蚀.开.闭运算是数学形态学最基本的变换.本文主要针对二值图像的形态学膨胀:把二值图像各1像素连接成分的边界扩大一层(填充边缘或0像素内部的孔):腐蚀:把二值图像各1像素连接成分的边界点去掉从而 ...
- 机器学习进阶-图像形态学操作-梯度运算 cv2.GRADIENT(梯度运算-膨胀图像-腐蚀后的图像)
1.op = cv2.GRADIENT 用于梯度运算-膨胀图像-腐蚀后的图像 梯度运算:表示的是将膨胀以后的图像 - 腐蚀后的图像,获得了最终的边缘轮廓 代码: 第一步:读取pie图片 第二步:进行腐 ...
随机推荐
- “Hello World!”团队第十三次会议
今天是我们团队“Hello World!”团队召开的第十三次会议.博客内容: 一.会议时间 二.会议地点 三.会议成员 四.会议内容 五.todo list 六.会议照片 七.燃尽图 一.会议时间 2 ...
- 第一个scrum会议
第一阶段冲刺任务认领: PM薛哥: 让手电筒亮起来 梁哥: 代码测试 康哥: 用户反馈等等
- Java微笔记(6)
- Java 数组转字符
public static String toString(int[] arr){ String temp = ""; for(int i = 0;i<arr.length; ...
- linux虚拟机发邮件给163邮件
配置/etc/mail.rc文件 set from=xxxxxxxx@163.com smtp=smtp.163.com set smtp-auth-user=yinhuanyi_cn@163.com ...
- vsftpd:非常安全的ftp服务端程序
主程序:/usr/sbin/vsftpd 主配置文件:/etc/vsftpd/vsftpd.conf CentOS 6 /etc/rc.d/init.d/vsftpd chkconfig vsftp ...
- IBM存储降级告警等一些服务器问题/dd/ethtool
1.IBM存储降级告警 一般两种情况 a.端口降级 例如模块16G->8G(IBM储存端口自适应) b.系统在作raid后,有硬盘损坏,降级 黄灯告警 2. dimm error dimm内存插 ...
- 关于jquery中on绑定click事件在苹果手机失效的问题(巨坑啊)
用一个div当做了一个按钮来使用. <div class="button"> <div class=" next_button button_left ...
- Halcon 学习笔记3 仿射变换
像素的减少 开运算(较少) 腐蚀(去除更多) 对灰度图像的开运算或腐蚀 相当于将灰度图像变暗 像素增加 闭运算(较少) 膨胀(较多) 对灰度图像的闭运算或膨胀 相当于将灰度图像变亮 仿射变换 另外一种 ...
- pyspark在windows中的安装
0.安装python,我用的是python2.7.13 1.安装jdk 一定要安装1.7以上的版本,安装低版本会报下面的错误 java.lang.NoclassDefFoundError 安装后不用手 ...