欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

OpenCV.提取水平线和竖直线

时间:2023-08-25

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

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

代码演示:

#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;}

输出结果:

 

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。