opencv的开运算

#开运算,腐蚀然后扩张的另一个名字,它对于消除噪音很有用
import cv2
import numpy as np
import matplotlib.pyplot as plt
img = cv2.imread('test9.jpg')
img = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
kernel = cv2.getStructuringElement(cv2.MORPH_RECT,(5,5))
opening = 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(opening),plt.title('opening')
plt.xticks([]),plt.yticks([])
plt.show()

 

使用到的test3.jpg,test9.jpg

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
运算(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
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值