python 简单图像处理(13) 二值图腐蚀和膨胀,开运算、闭运算

本文介绍了Python中对二值图像进行腐蚀、膨胀操作,以及如何实现开运算和闭运算。这些操作可以消除图像中的小噪声点,如小白点或小黑点,并保持图像的基本形状和位置不变。通过实例展示了不同窗口形状对运算结果的影响。
摘要由CSDN通过智能技术生成

原文:http://www.cnblogs.com/xianglan/archive/2010/12/29/1921211.html

python 简单图像处理(13) 二值图腐蚀和膨胀,开运算、闭运算

 

开运算:先腐蚀后膨胀,能够消除图像区域外的小白点(噪声)。

闭运算:先膨胀后腐蚀,能够消除图像区域内的小黑点(噪声)。

 

import cv2
def closeopration(img):
    kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (5, 5))
    iClose = cv2.morphologyEx(image, cv2.MORPH_CLOSE, kernel)
    return iClose
 
image = cv2.imre
开运算(opening)是形态学图像处理中的一种基本操作,由腐蚀膨胀两个操作组成,先进行腐蚀操作,再进行膨胀操作,常用于去除像中的噪声和小斑点,平滑边缘并保留物体的形状和大小。 在OpenCV中,可以使用cv.morphologyEx()函数进行开运算操作,具体的参数如下: ```python cv.morphologyEx(src, op, kernel[, dst[, anchor[, iterations[, borderType[, borderValue]]]]]) ``` 其中: - src:输入像,可以是单通道或多通道像,数据类型为uint8、uint16或float32。 - op:形态学操作类型,这里应该选择cv.MORPH_OPEN。 - kernel:形态学操作的核,可以是自定义的形状和大小的核,也可以是OpenCV提供的预定义的核,如矩形结构元素、十字形结构元素、椭圆形结构元素等。 - dst:输出像,与输入像的类型和大小相同。 - anchor:锚点的位置,表示操作核的中心点,默认值为(-1, -1),表示锚点位于核的中心。 - iterations:迭代次数,表示进行形态学操作的次数,默认值为1。 - borderType:边界处理方式,默认值为cv.BORDER_CONSTANT,表示在边界处填充常数值。 - borderValue:边界常数值,默认值为0,只有在边界处理方式为cv.BORDER_CONSTANT时才会使用。 使用cv.morphologyEx()函数进行开运算操作的代码示例如下: ```python import cv2 as cv import numpy as np # 读取像 img = cv.imread('test.jpg') # 定义核的大小和形状 kernel = cv.getStructuringElement(cv.MORPH_RECT, (3, 3)) # 进行开运算操作 opening = cv.morphologyEx(img, cv.MORPH_OPEN, kernel) # 显示结果 cv.imshow('Original Image', img) cv.imshow('Opening Image', opening) cv.waitKey(0) cv.destroyAllWindows() ``` 在上面的代码中,我们先读取了一张测试像,然后定义了一个大小为3x3的矩形核,最后使用cv.morphologyEx()函数进行开运算操作,并将结果显示出来。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI算法网奇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值