【问题标题】:How to segment license plate characters removing unwanted characters using opencv python?如何使用opencv python分割车牌字符以删除不需要的字符?
【发布时间】:2017-02-18 14:19:47
【问题描述】:

我正在使用opencv python来分割车牌字符并删除不必要的字符。我想比较每个字符的高度并删除低于某个阈值的字符。你们中的任何人都可以向我推荐一种方法吗?我已经尝试使用轮廓找到该区域但没有成功。这是我正在使用的车牌示例。

【问题讨论】:

  • 您设置的所谓“阈值”是什么?要删除哪些字母?更加详细一些。查看轮廓的图像区域似乎是最佳选择。
  • 想要从图像中删除所有小字符图标和破折号,然后将其余部分分割成单独的字符。已尝试使用轮廓,但无法正常工作。
  • 你把事情复杂化了。车牌是标准化的,字符总是在同一个位置。您无需根据大小来判断它们,因为您先验地知道每个字符的位置。

标签: python opencv image-processing


【解决方案1】:

“已经尝试使用轮廓,但它不能正常工作”,这就是你所说的。但我使用轮廓操作执行了以下操作。

我首先调整了您的图片大小以使其看起来更大(尺寸翻倍)。

img = cv2.resize(img, (0,0), fx=2, fy=2)

然后我找到了图像中存在的所有轮廓:

gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
ret, thresh = cv2.threshold(gray_img, 127, 255, 1)
_, contours , _= cv2.findContours(thresh, cv2.RETR_TREE, 1)

cnt = contours
for i in range(len(contours)):

    #---- Mark contours above certain area ----
    if (cv2.contourArea(cnt[i]) > 1500):
        final_image = cv2.drawContours(img, cnt[i], -1, (0,255,0), 3)

cv2.imshow('Marked image', final_image )

这是我得到的:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-16
    • 1970-01-01
    • 2021-05-25
    • 2021-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多