OPENCV实践项目-去除票据中的红色印章
opencv
OpenCV: 开源计算机视觉库
项目地址:https://gitcode.com/gh_mirrors/opencv31/opencv
免费下载资源
·
1. 实现方法
现实生活中,一些票据(比如发票、车票)等都会有一个红色印章,有时会盖在某个关键区域,影响了其他的字符识别。因此,为了提高准确率,我们尽量会移除红色印章,具体实现方法如下:
- 对彩色图分离通道,拿到红色通道图
- 进行阈值分割
2. 代码实现
int main()
{
char* path = "C:\\Users\\Administrator\\Desktop\\piaoju.png";
Mat src = imread(path);
if (src.empty()) {
return -1;
}
imshow("original", src);
Mat gray;
cvtColor(src, gray, CV_BGR2GRAY);
//全局二值化
int thresh_value = 100;
Mat binary;
threshold(gray, binary, thresh_value, 255, CV_THRESH_BINARY);
imshow("binary", binary);
vector<Mat> channes;
split(src, channes);
Mat red = channes[2];
imshow("red", red);
Mat red_binary;
threshold(red, red_binary, thresh_value, 255, CV_THRESH_BINARY);
imshow("red+binary", red_binary);
Mat red_dilate;
Mat kernel = getStructuringElement(MORPH_RECT, Size(3, 3), Point(-1, -1));
dilate(red_binary, red_dilate, kernel);
Mat kernel_ellipse = getStructuringElement(MORPH_ELLIPSE, Size(2, 2), Point(-1, -1));
morphologyEx(red_binary, red_dilate, MORPH_OPEN, kernel_ellipse, Point(-1, -1));
imshow("red+binary+dilate", red_dilate);
waitKey();
return 0;
}
3. 结果展示
注意
作者注释掉了最后的腐蚀和开运算,估计是因为效果不明显,我也对核的大小进行了调整测试,相对red_binary只是稍微清晰了一些。
原文地址:https://www.freesion.com/article/6510242781/
GitHub 加速计划 / opencv31 / opencv
77.38 K
55.71 K
下载
OpenCV: 开源计算机视觉库
最近提交(Master分支:2 个月前 )
c3747a68
Added Universal Windows Package build to CI. 7 天前
9b635da5 - 7 天前
更多推荐
已为社区贡献11条内容
所有评论(0)