在opencv 3.0中擦除图像的阴影[关闭]

Posted

技术标签:

【中文标题】在opencv 3.0中擦除图像的阴影[关闭]【英文标题】:Erase shadow of an image in opencv 3.0 [closed] 【发布时间】:2016-10-04 13:50:23 【问题描述】:

我正在使用车牌分割,并且我有一些在车牌部分有阴影的图像难以识别处理,一些想法消除了车牌部分的阴影以使字母清晰。感谢并感谢任何帮助!

这里有两张图片:

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

最终结果是

MSER

【问题讨论】:

我认为阴影没有任何问题。请描述你的问题是什么。也许提供一些中间图像和一些代码...... 我不明白你到底有什么问题?您是否检测到车牌并且 OCR 有问题,或者您从一开始就检测车牌有问题? 感谢您的回复,我补充了我的问题,我正在使用 MSER 检测车牌的字母。 【参考方案1】:

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

【讨论】:

以上是关于在opencv 3.0中擦除图像的阴影[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

在fabric js中擦除iText时显示光标线代替擦除的字符

从向量中擦除指针

在单个链表线程中擦除和插入是不是安全?

击败从内存中擦除 PE

在 std::vector 中擦除、调试、发布

为啥在Visual Studio中擦除位置之前矢量的c ++迭代器也无效?