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学习-形态学操作应用-开操作提取图片中的文字的主要内容,如果未能解决你的问题,请参考以下文章

OpenCV 形态学操作应用——提取水平与垂直线

OpenCV 形态学操作应用——提取水平与垂直线

OpenCV实战 | 基于形态学运算提取图像中的音符

OpenCV实战 | 基于形态学运算提取图像中的音符

OpenCV实战 | 基于形态学运算提取图像中的音符

Python+OpenCV图像处理之开闭操作