opencv学习-形态学操作应用-开操作提取图片中的文字
Posted 殇堼
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了opencv学习-形态学操作应用-开操作提取图片中的文字相关的知识,希望对你有一定的参考价值。
注意:
二值化之前必须要进行灰度化处理或是转化为单通道图像,
因为二值化意味着图像只有两种颜色,即黑和白,如果输入图像是三通道的,那么黑色和白色将将以赋予多种颜色为黑或是白,而灰度化图像只有灰色和白色,刚好可以转化为黑白图像。
#include <opencv2\\opencv.hpp>
#include<iostream>
using namespace std;
using namespace cv;
int main()
{
Mat src = imread("D:/images/morph02.png");
if (src.empty())
{
cout << "Can't load the image" << endl;
return -1;
}
imshow("src", src);
//灰度化
Mat gray;
cvtColor(src, gray, COLOR_BGR2GRAY);
imshow("gray", gray);
//二值化,adaptive threshold自适应阈值,通过调整到一个合适的阈值对图像进行处理,就是二值化
Mat bin;
adaptiveThreshold(gray, bin, 255, cv::ADAPTIVE_THRESH_MEAN_C, THRESH_BINARY, 15, 0);
imshow("bin", bin);
//创建卷积核(结构元素)
Mat dst, hdst,xdst;
Mat kernel = getStructuringElement(MORPH_RECT, Size(5, 5), Point(-1, -1));
//腐蚀
erode(bin, dst, kernel, Point(-1, -1));
imshow("erode", dst);
//膨胀
dilate(dst, hdst, kernel, Point(-1, -1));
imshow("dilate", hdst);
//与上述腐蚀加膨胀操作等价
/*morphologyEx(bin, dst, MORPH_OPEN, structureElement, Point(-1, -1));*/
//背景和文字颜色取反
bitwise_not(hdst, xdst);
imshow("result", xdst);
waitKey(0);
}
以上是关于opencv学习-形态学操作应用-开操作提取图片中的文字的主要内容,如果未能解决你的问题,请参考以下文章