0

嗨,我正在开发一个需要找到车牌轮廓的程序,车牌一切都很好,但是当我尝试获取红牌的轮廓时,它没有正确显示轮廓,我检查了所有将图像转换为灰色然后模糊图像然后对图像进行阈值以实现查找轮廓的结果,这些是图像:

原图:

在此处输入图像描述

灰度图像:

在此处输入图像描述

图像阈值:

在此处输入图像描述

找到轮廓:

在此处输入图像描述

如图所示,我想获得阿拉伯数字周围的轮廓,但数字周围的阈值内部是白色和黑色,因此它不能完美地围绕它们

就像这张图片:

在此处输入图像描述

这是我处理两个图像的代码:

image = cv2.imread('red_image3.jpg')

gray_image = extractValue(image)

imgMaxContrastGrayscale = maximizeContrast(gray_image)


imgBlurred = cv2.GaussianBlur(imgMaxContrastGrayscale, (3,3), 0)

imgThresh = cv2.adaptiveThreshold(imgBlurred, 255.0, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY_INV,
                                  17, 9)
contours, _ = cv2.findContours(imgThresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_NONE)

for contour in contours :
    (x,y,w,h) = cv2.boundingRect(contour)
    cv2.rectangle(image , (x,y) , (x+w,y+h),(0,255,0), thickness=1)
4

0 回答 0