在opencv 3.0中擦除图像的阴影

Erase shadow of an image in opencv 3.0

本文关键字:图像 阴影 擦除 opencv      更新时间:2023-10-16

我正在处理车牌分割,我有一些在车牌部分有阴影的图像,难以识别处理,一些擦除车牌部分阴影的想法,以使字母清晰。谢谢你的帮助!

这里有两张图片:

image with shadow2

我想使用MSER来检测板中的字母,然后对其进行分割。首先,我对图像进行预处理(模糊和CLAHE),在应用形态学BLACKHAT变换和应用MSER之后,但识别效果不佳。我认为去掉底片的阴影效果会更好。我不知道该怎么办,谢谢你的回应和帮助!!,我的代码和结果是:

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);

最后的结果是

,

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