【问题标题】:How can i apply proportionally dilation operation to binary images?如何将比例膨胀运算应用于二值图像?
【发布时间】:2013-04-16 22:47:04
【问题描述】:

我必须对二值图像进行膨胀 我的问题是对不同大小的二值图像进行膨胀操作。

我想对所有图像应用按比例膨胀操作,并防止像轮子这样的小图像变成白色圆圈。

#image dilation
import cv2

path "pathimage"
gray = cv2.imread(path,0)
element = cv2.getStructuringElement(cv2.MORPH_CROSS,(6,6)) 
graydilate = cv2.erode(gray, element) #imgbnbin
graydilate = cv2.erode(graydilate, element)
#graydilate = cv2.erode(graydilate, element)

cv2.imshow('erode',graydilate)
cv2.waitKey()

ret,thresh = cv2.threshold(graydilate,127,255,cv2.THRESH_BINARY_INV) 
imgbnbin = thresh
print("shape imgbnbin")
print(imgbnbin.shape)
cv2.imshow('binaria',imgbnbin)
cv2.waitKey()

我可以重新缩放图像吗?

【问题讨论】:

    标签: python image-processing mathematical-morphology


    【解决方案1】:

    您可以执行以下任一操作:

    • 将图像重新缩放到相同大小。

    • 如果图像中的对象与图像的大小不成正比,则为对象提取一个边界框,然后确定结构元素的大小(目前总是6x6)相对于对象的大小边界框。这样您就可以确定形态与物体大小成正比。

    【讨论】:

    • 抱歉,我如何确定结构元素的大小?您会建议我选择是否使用 6x6 而不是 3x3 的边界框大小大于例如 (320, 240)?
    • 您可能会确定结构元素的大小约为边界框的 1%。这样,如果您的边界框大小为 W x H,那么您的结构元素的大小为 0.01W x 0.01H。在您的 320x240 示例中,这将四舍五入为 3x2。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-28
    相关资源
    最近更新 更多