0

我有一个像这样的原始图像,我想稍后分割这个牌照上的每个字符,我在用这个代码分割每个字符之前使用高斯阈值来转换牌照:

Val_hsv = cv2.split(cv2.cvtColor(crop_frame, cv2.COLOR_BGR2HSV))[1]
    adaptive_tresh = threshold_local(Val_hsv, 29, offset=9, method="gaussian")
    thresh = (Val_hsv > adaptive_tresh).astype("uint8") * 255
    thresh = cv2.bitwise_not(thresh)

    crop_frame = imutils.resize(crop_frame, width=400)
    thresh = imutils.resize(thresh, width=400)
    cv2.imshow("Threshold plate", thresh)

出来的结果是我认为噪音太大,我很困惑,有什么比这更好的解决方案吗?谢谢你

4

1 回答 1

0

我建议不要cv2.adaptiveThreshold在此使用简单的颜色分割,使用它您可以轻松地分割出输入图像中的黑色和红色噪声元素。

import cv2
import numpy as np

original_image = cv2.imread("/path/to/img.jpg")

mask = cv2.inRange(original_image, np.array([210, 210, 210]), np.array([255, 255, 255]))

在此处输入图像描述

您可以通过尝试各种颜色域(例如 HSV 等)来进一步优化结果,这将使您可以更精细地控制颜色阈值范围。

于 2020-02-28T06:04:36.703 回答