opencv+python(开闭运算)

1、开运算:先对图像进行腐蚀,然后再膨胀,目的是去除噪声;(除外面的噪声)

morphologyEx(src,
                 op, # 为形态变换的类型 MORPH_OPEN:开运算
                 kernel,
                 dst: ,
                 anchor,
                 iterations,
                 borderType,
                 borderValue)

 #调整窗口的大小
    cv2.namedWindow('dst',cv2.WINDOW_NORMAL)
    cv2.resizeWindow('dst',800,600)
    
    kernel=cv2.getStructuringElement(cv2.MORPH_RECT,(5,5))
    # img=cv2.erode(img,kernel,iterations=1) # 腐蚀,可自行改变迭代数,实现效果
    # dst=cv2.dilate(img,kernel,iterations=1) # 膨胀
    
    kernel=cv2.getStructuringElement(cv2.MORPH_RECT,(5,5))
    dst=cv2.morphologyEx(img,cv2.MORPH_OPEN,kernel,iterations=1)# 开运算
    cv2.imshow("dst",dst)

    cv2.waitKey(0)

2、闭运算:先对图像进行膨胀,然后再腐蚀,目的是去除噪声;(除里面的噪声)

morphologyEx(src,
                 op, # 为形态变换的类型 MORPH_CLOSE:闭运算
                 kernel,
                 dst: ,
                 anchor,
                 iterations,
                 borderType,
                 borderValue)

  kernel=cv2.getStructuringElement(cv2.MORPH_RECT,(5,5))
    
    # dst=cv2.dilate(img,kernel,iterations=1) # 膨胀
    # img=cv2.erode(img,kernel,iterations=1) # 腐蚀
    dst=cv2.morphologyEx(img,cv2.MORPH_CLOSE,kernel,iterations=1)
    cv2.imshow("dst",dst)

3、形态学梯度

边缘:腐蚀之后,原图的边缘会减小,通过原图-腐蚀=边缘;

morphologyEx(src,
                 op, # 为形态变换的类型 MORPH_GRADIENT:梯度图
                 kernel,
                 dst: ,
                 anchor,
                 iterations,
                 borderType,
                 borderValue)

#通过调整kernel可以获得更加清晰的边缘
    kernel=cv2.getStructuringElement(cv2.MORPH_RECT,(5,5))
    dst=cv2.morphologyEx(img,cv2.MORPH_GRADIENT,kernel,iterations=1)
    cv2.imshow("dst",dst)

  • 21
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
OpenCV-Python中,开闭运算是形态学处理的两个基本操作之一。开运算通过先进行腐蚀操作,然后再进行膨胀操作来实现。它的作用包括填充物体空洞、消除噪声、连接邻近物体、平滑边界等。\[2\] 在代码中,使用cv2.morphologyEx函数来进行开闭运算。参数cv2.MORPH_OPEN表示进行开运算。通过定义一个核(kernel)来指定腐蚀和膨胀的形状和大小。在给定的示例代码中,使用了一个10x10的全1矩阵作为核。\[1\] 具体实现时,先读取原始图像,然后使用cv2.morphologyEx函数进行开运算操作,得到处理后的图像。最后可以通过cv2.imshow函数显示原始图像和处理后的图像,并通过cv2.imwrite函数保存处理后的图像。\[1\] 总结来说,开闭运算是一种常用的形态学处理方法,可以用于填充物体空洞、消除噪声、连接邻近物体、平滑边界等。在OpenCV-Python中,可以使用cv2.morphologyEx函数来实现开闭运算操作。\[2\] #### 引用[.reference_title] - *1* *2* *3* [【OpenCV-Python】:形态学操作之开运算与闭运算](https://blog.csdn.net/qq_42856191/article/details/123670455)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小土嘿嘿

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

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

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

打赏作者

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

抵扣说明:

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

余额充值