OpenCV.提取水平线和竖直线

OpenCV.提取水平线和竖直线,第1张

OpenCV.提取水平线和竖直线

原图像->转灰度图->二值化->开 *** 作。

提取水平线卷积盒使用水平矩形,提取竖直线卷积盒使用竖直矩形。

代码演示:
#include 
#include 
#include 

using namespace std;
using namespace cv;

int main(int argc, const char* argv[])
{
	utils::logging::setLogLevel(utils::logging::LOG_LEVEL_SILENT);	//设置日志输出

	Mat src = imread("E:/picture/12.jpg");
	Mat dst,result;
	Mat src_gray=Mat::zeros(src.size(),src.type());
	putText(src, "OpenCv_vigny", Point(50, 50), FONT_HERSHEY_COMPLEX, 1.0,
		Scalar(12, 12, 127), 1, LINE_8, false);
	cvtColor(src, src_gray, COLOR_BGR2GRAY);
	adaptiveThreshold(~src_gray, dst, 255, ADAPTIVE_THRESH_MEAN_C, THRESH_BINARY, 15, -2);
	Mat hline = getStructuringElement(MORPH_RECT, Size(src.cols / 16, 1), Point(-1, -1));
	Mat cline = getStructuringElement(MORPH_RECT, Size(1, src.rows / 16), Point(-1, -1));
	morphologyEx(dst, result, MORPH_OPEN, hline, Point(-1, -1), 1);
	imshow("input", src);
	imshow("thresh", dst);
	imshow("result", ~result);
	waitKey(0);
	destroyAllWindows();
	return 0;
}

输出结果:

 

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5720880.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-18
下一篇2022-12-18

发表评论

登录后才能评论

评论列表(0条)

    保存