Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opencv OCR:低对比度/噪声区域_Opencv_Ocr_Watermark_Noise - Fatal编程技术网

Opencv OCR:低对比度/噪声区域

Opencv OCR:低对比度/噪声区域,opencv,ocr,watermark,noise,Opencv,Ocr,Watermark,Noise,我试图识别下面显示的17个字符的代码 我目前正在为我的管道使用OpenCV: (1) 转换为黑白图像 (2) 计算梯度图像 (3) 大津阈值法 (4) 查找等高线 (5) 查找轮廓的边界框 当图像相对干净时,它工作得非常好。在上面的示例中,我能够检测到“H26A838778”。是否有人知道如何处理图像左侧,即对比度低且水印会增加噪声的区域?您可以尝试使用 由于字符之间的颜色相同或相似,并且它们的颜色值高于背景(更白),因此可以尝试找到阈值颜色值,该值将保持字符的颜色为白色,其他所有颜色均为黑色

我试图识别下面显示的17个字符的代码

我目前正在为我的管道使用OpenCV:
(1) 转换为黑白图像
(2) 计算梯度图像
(3) 大津阈值法
(4) 查找等高线
(5) 查找轮廓的边界框


当图像相对干净时,它工作得非常好。在上面的示例中,我能够检测到“H26A838778”。是否有人知道如何处理图像左侧,即对比度低且水印会增加噪声的区域?

您可以尝试使用

由于字符之间的颜色相同或相似,并且它们的颜色值高于背景(更白),因此可以尝试找到阈值颜色值,该值将保持字符的颜色为白色,其他所有颜色均为黑色。在下面的示例(Java代码)中,这个数字是140

Mat original = Imgcodecs.imread("pathToOriginalImage");
Mat gray = new Mat();
Imgproc.cvtColor(original, gray, Imgproc.COLOR_RGB2GRAY, 0);
Mat binary = new Mat();
Imgproc.threshold(original,binary,140,255,Imgproc.THRESH_BINARY);
转换为灰阶

阈值化

OCR现在应该会给出一些好结果。