首页 > 其他 > 详细

开操作与闭操作

时间:2021-01-14 15:10:41      阅读:28      评论:0      收藏:0      [点我收藏+]

开操作

  闭操作同样使轮廓线更为光滑,但与开操作相反的是,它通常连接狭窄的间断和长细的鸿沟,消除小的孔洞,并填补轮廓线中的断裂。

  使用结构元素 B 对集合 A 进行开操作,定义为:

               技术分享图片

 闭操作

  闭操作同样使轮廓线更为光滑,但与开操作相反的是,它通常连接狭窄的间断和长细的鸿沟,消除小的孔洞,并填补轮廓线中的断裂。

             技术分享图片

 

 技术分享图片

开操作有一个简单的几何解释

技术分享图片

对形态学上的开操作和闭操作的简单说明

技术分享图片

import cv2 as cv

def open_image(image):
    图像开操作
    gray=cv.cvtColor(image,cv.COLOR_BGR2GRAY)
    # res=cv.bitwise_not(gray)
    #图像二值化
    ret,binary=cv.threshold(gray,0,255,cv.THRESH_BINARY | cv.THRESH_OTSU)
    cv.imshow(binary,binary)
    #获取形态学结构kernel,采用的形态学方式MORPH_RECT
    kernel=cv.getStructuringElement(cv.MORPH_RECT,(5,5))
    #图像的开操作
    binary=cv.morphologyEx(binary,cv.MORPH_OPEN,kernel)
    cv.imshow(open,binary)

def close_image(image):
    图像闭操作
    gray=cv.cvtColor(image,cv.COLOR_BGR2GRAY)
    # res=cv.bitwise_not(gray)
    ret,binary=cv.threshold(gray,0,255,cv.THRESH_BINARY | cv.THRESH_OTSU)
    kernel=cv.getStructuringElement(cv.MORPH_RECT,(5,5))
    #操作函数morphologyEx
    binary=cv.morphologyEx(binary,cv.MORPH_CLOSE,kernel)
    cv.imshow(close,binary)

src = cv.imread("tree.jpg")
cv.imshow("原来", src)
open_image(src)
close_image(src)
cv.waitKey(0)
cv.destroyAllWindows()

技术分享图片技术分享图片

 

 技术分享图片技术分享图片

   闭运算用来连接被误分为许多小块的对象,而开运算用于移除图像噪音形成的斑点.因此,某些情况下可以连续运用这两种运算。如对一副二值图连续使用闭运算和开运算,将获得图像中的主要对象。同样,如果想消除图像中的噪声(即图像中的“小点”),也可以对图像先用开运算后用闭运算,不过这样也会消除一些破碎的对象。

 

开操作与闭操作

原文:https://www.cnblogs.com/a-runner/p/14136296.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!