在opencv 3.0中擦除图像的阴影
Erase shadow of an image in opencv 3.0
我正在处理车牌分割,我有一些在车牌部分有阴影的图像,难以识别处理,一些擦除车牌部分阴影的想法,以使字母清晰。谢谢你的帮助!
这里有两张图片:
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);
最后的结果是
,
我也没有看到任何影响车牌图像识别的阴影问题。您需要做的是使用您选择的图像分割算法隔离每个图像文件中车牌上的字母和数字,阴影和图像的所有其他部分应被视为噪声和干扰。您还可以使用阈值分割和霍夫变换算法来辅助光学字符识别。
相关文章:
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 如何使用OpenCV将RBG图像转换为HSV,并将H、S和V值保存为C++中的3个独立图像
- OpenCV EqualizeHist()从彩色图像创建黑白图像
- 将"打开的CV图像"中的"颜色"转换为整数格式
- 平均图像时图像损坏
- 在C++中使用GDAL可以将图像的像素坐标转换为lat,long吗
- 如何将图像传输到c++(dll)中的缓冲区,然后在c#的缓冲区中读/写
- Vulkan验证层不断在VkQueuePresentKHR()上抛出图像布局错误
- 使用FFMPEG将RGB图像序列保存到.mp4时出现问题
- 将RGB图像保存为PPM格式
- 将图像添加到资源文件夹UWP C++
- 彩色图像的卤化物处理平均值
- C++射线示踪剂ppm表示没有足够的数据来显示图像
- 重新定位图像时如何前进到下一个内存块
- 如何使用按钮更新GTK3图像以使用C++从相机捕获图片
- 为什么 BMP 图像上的 imwrite 会卡住/不返回?
- Gstreamer:每 5 秒使用多文件墨水保存图像/jpeg
- 如何使用CImg打开图像?
- 球体图像纹理被阴影贴图 - OpenGL 扭曲
- 在opencv 3.0中擦除图像的阴影