首页 > 其他 > 详细

开操作与结构元素结合

时间:2020-03-31 15:25:19      阅读:74      评论:0      收藏:0      [点我收藏+]

开操作可以和结构元素结构一起使用,提取想要的东西。

1. 提取横线

原图:
技术分享图片

先用Canny 提取边缘
技术分享图片
结构元素,提取横线

Mat kernel = getStructuringElement(MORPH_RECT, Size(15, 1), Point(-1, -1));

技术分享图片

这种提取直线比霍夫直线检测稍微好点,可以降低噪声的干扰

2. 提取竖线

操作相同,更改结构元素

Mat kernel = getStructuringElement(MORPH_RECT, Size(15, 1), Point(-1, -1));

技术分享图片

本节示范代码:

#include <opencv2/opencv.hpp>
#include <iostream>
#include<vector>
using namespace std;
using namespace cv;

int main(int argc, char** argv) {
	Mat src = imread("D:/images/openStruct.jpg", IMREAD_UNCHANGED);
	if (src.empty()) {
		cout << "can`t read this image" << endl;
	}
	imshow("src",src);
	Mat gray,binary;
	cvtColor(src, gray, COLOR_BGR2GRAY);
	Canny(gray, binary, 60, 100, 3);
	imshow("binary", binary);
	Mat dst;
	//Mat kernel = getStructuringElement(MORPH_RECT, Size(15, 1), Point(-1, -1));
	Mat kernel = getStructuringElement(MORPH_RECT, Size(1, 15), Point(-1, -1));
	morphologyEx(binary, dst, MORPH_OPEN, kernel, Point(-1, -1), 1);
	bitwise_not(dst, dst);
	namedWindow("dst_demo", WINDOW_FREERATIO);
	imshow("dst_demo", dst);
	waitKey(0);
	destroyAllWindows();
	return 0;
}

开操作与结构元素结合

原文:https://www.cnblogs.com/cyssmile/p/12605373.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!