在opencv 3.0中擦除图像的阴影

时间:2016-10-04 13:50:23

标签: c++ opencv image-processing

我正在使用车牌分割,并且我在盘子的部分中有一些阴影图像难以进行识别处理,有些想法是擦除板块部分的阴影以保持字母清晰。谢谢,感谢任何帮助!

这里有两张图片:

image with shadow2

我想用MSER检测盘子里的字母,然后对它进行分割。首先,我在应用形态学BLACKHAT转换后应用MSER但是识别效果不佳后,对图像进行预处理(模糊和CLAHE)。我认为去除板块的阴影效果会更好。我不知道该怎么做,感谢您的回复和帮助!!,我的代码和结果是:

Mat gray_neg;
Mat element = getStructuringElement(MORPH_RECT, Size(5, 5));
morphologyEx(imageLoad, gray_neg, MORPH_BLACKHAT, element);
cv::Ptr<cv::MSER> mesr1 = cv::MSER::create(2, 30, 600, 0.15, 0.2);
std::vector<cv::Rect> bboxes1;
vector<vector<Point> > contours1;
mesr1->detectRegions(gray_neg.clone(), contours1, bboxes1);

Mat image_grayBGR;
    cvtColor(imageLoad, image_grayBGR, COLOR_GRAY2BGR);
for (int i = 0; i < bboxes1.size(); i++){
    rectangle(image_grayBGR, bboxes1[i], CV_RGB(255, 0, 0));
}


imshow("MSER", image_grayBGR);

最终结果是

MSER

1 个答案:

答案 0 :(得分:-1)

我也没有看到任何会影响印版图像识别的阴影问题。您需要做的是使用您选择的图像分割算法隔离每个图像文件上牌照上的字母和数字,阴影和图像的所有其他部分应被视为噪声和干扰。您还可以使用阈值处理和Hough变换算法来辅助光学字符识别。