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