如何按比例应用扩张操作二进制图像?

时间:2013-04-16 22:47:05

标签: python image-processing mathematical-morphology

我必须对二进制图像进行扩张 我的问题是根据二进制图像的不同大小调整扩张操作。

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

#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()

我可能需要重新缩放图像吗?

1 个答案:

答案 0 :(得分:1)

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

  • 将图像重新缩放到相同的尺寸。

OR

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