用不同方法寻找候选板

2024-10-01 07:15:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用不同的方法来检测候选车牌,但是我试了好几次都卡住了。 我不知道我的方法是否正确。
我正在使用HSV图像模型。
到目前为止,我对已知方法的处理方法。
1预处理图像->;形态变换->;斑点检测。
2预处理图像->;边缘检测->;在图像中查找矩形。
三。预处理图像->;边缘检测->;直方图投影->;直方图分析

我不想把重点放在方法3上,因为其他人正在研究它。 我应该在什么地方使用连通成分分析吗?
我使用黑帽和顶帽操作与高斯模糊和自适应阈值图像预处理。 这是我的密码:

imgHSV = np.zeros((self.height, self.width, 3), np.uint8)
imgHSV = cv.cvtColor(self.image, cv.COLOR_BGR2HSV)
_, _, self.imgValue = cv.split(imgHSV)
imgTopHat = np.zeros((self.height, self.width, 1), np.uint8)
imgBlackHat = np.zeros((self.height, self.width, 1), np.uint8)

structuringElement = cv.getStructuringElement(cv.MORPH_RECT, (3, 3))

imgTopHat = cv.morphologyEx(self.imgValue, cv.MORPH_TOPHAT, structuringElement)
imgBlackHat = cv.morphologyEx(self.imgValue, cv.MORPH_BLACKHAT, structuringElement)
imgGrayscalePlusTopHat = cv.add(self.imgValue, imgTopHat)
imgGrayscaleHSV = cv.subtract(imgGrayscalePlusTopHat, imgBlackHat)

imgBlurred = np.zeros((self.height, self.width, 1), np.uint8)
imgBlurred = cv.GaussianBlur(imgGrayscaleHSV, GAUSSIAN_SMOOTH_FILTER_SIZE, 0)
thresholdedImage = cv.adaptiveThreshold(imgBlurred, 255.0, cv.ADAPTIVE_THRESH_GAUSSIAN_C, cv.THRESH_BINARY_INV, ADAPTIVE_THRESH_BLOCK_SIZE, ADAPTIVE_THRESH_WEIGHT)

预处理后的图像是指经过提取值、TopHat和BlackHat运算、高斯模糊和自适应阈值处理后的图像。 我试着用openCV找到simpleBlob,但它不能正确地处理准备好的图像。 至于边缘检测,我使用了canny边缘检测,并实现了sobel边缘检测。你知道吗

示例处理图像(我还没有足够的声誉发布图像…)

enter image description here

我希望输出的图像与潜在板候选人的轮廓,但我不能得到正确的转换图像工作。我该怎么办?应该如何应用转换(以及什么类型)。你知道吗


Tags: 方法图像gtselfnpzeroswidthcv
1条回答
网友
1楼 · 发布于 2024-10-01 07:15:54

我试着用不同的方法检测平板:2和3。他们实际上不在工作。你知道吗

最好的方法是基于ML的。例如HAAR cascades上最简单的。HOG+SVM效果更好。基于DNN的方法是最好的-from Intelwith advance information(您可以将它与opencv结合使用,将DNN与OpenVINO推理引擎结合使用)。你知道吗

不要把时间浪费在手动算法上。你知道吗

相关问题 更多 >