博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《图像处理实例》 之 提取特殊背景的直线
阅读量:4287 次
发布时间:2019-05-27

本文共 2203 字,大约阅读时间需要 7 分钟。

目标:提取图像中的直线

直接运用霍夫变换行不通,需要经过形态学处理之后再霍夫提取!

自动化阈值OTSU算法:

形态学操作:

 这一步其实已经分离出我们需要的区域,,也可以用下面的霍夫变换!

霍夫变换:

水漫的好处是可以操作这个区域,霍夫的好处是可以得到这个位置!

上代码:

1 #include
2 #include
3 #include
4 using namespace cv; 5 using namespace std; 6 7 int Threshold_Value = 176; 8 const int Threshold_Max_value = 255; 9 const int Threshold_type_value = 3;10 double MaxWidth = 0, MaxHeight = 0;//找最大的矩形边11 12 RNG rng(12345);13 14 Mat input_image, threshold_image, output_image, Middle_image;15 16 void Threshold_Image_Bar(int, void *);17 18 int main(int argc, char**argv)19 {20 input_image = imread("1.jpg");21 if (input_image.data == NULL) {22 return -1; cout << "can't open image.../";23 }24 imshow("Sourse Image", input_image);25 blur(input_image, Middle_image,Size(3,3),Point(-1,-1),4);26 imshow("Blur Image", Middle_image);27 cvtColor(Middle_image, Middle_image,COLOR_RGB2GRAY);28 imshow("Gray Image", Middle_image);29 namedWindow("Threshold Image",1);30 createTrackbar("阈值调整", "Threshold Image",&Threshold_Value,255,Threshold_Image_Bar);31 Threshold_Image_Bar(0,0);32 waitKey(0);33 return 0;34 }35 36 void Threshold_Image_Bar(int, void *)37 {38 threshold(Middle_image, threshold_image, 0, 255, THRESH_BINARY_INV | THRESH_OTSU);39 //Canny(threshold_image,threshold_image, Threshold_Value, Threshold_Value*3);40 //bitwise_not(threshold_image, threshold_image,Mat());41 imshow("Threshold Image", threshold_image);42 Mat kernel = getStructuringElement(MORPH_RECT,Size(threshold_image.cols/20,1),Point(-1,-1));43 erode(threshold_image,threshold_image,kernel);44 dilate(threshold_image, threshold_image,kernel);45 imshow("Erode Image", threshold_image);46 vector
tline;47 HoughLinesP(threshold_image,tline,1,CV_PI/360,5,0,0);48 Mat LineImage = Mat::zeros(threshold_image.size(), threshold_image.type());49 for (size_t i = 0; i < tline.size(); i++)50 {51 line(input_image, Point(tline[i][0],tline[i][1]), Point(tline[i][2],tline[i][3]), Scalar(200, 55, 205),3,8,0);52 }53 imshow("LineImage", input_image);54 }

参考:贾老师opencv系列

转载地址:http://ustgi.baihongyu.com/

你可能感兴趣的文章
VSCode前端编辑器 1.7(编辑功能媲美sublime text,HTML等代码格式化很是不错)
查看>>
VsCode插件整理
查看>>
VSCode插件之View In Browser/Open in Browser‘在浏览器中查看’
查看>>
Web前端代码编辑器之Atom整理
查看>>
Atom编辑器之JS代码只能补全插件-Atom-ternjs
查看>>
VisualStudio2017相关说明整理
查看>>
VisualStudio2017相关说明整理(二)
查看>>
.Net 官方学习文档
查看>>
SqlServer链接字符串整理
查看>>
SqlServer 数据库修改是否区分大小写
查看>>
Ionic相关整理
查看>>
Node.js和Npm查看版本信息
查看>>
Layui相关整理
查看>>
CND使用说明整理2、Asp.NetCDN服务地址
查看>>
EF中Sum()异常:到值类型“System.Decimal”的强制转换失败,因为具体化值为 null。
查看>>
Visual Studio Code插件之Atom One Dark Syntax Theme
查看>>
EntiryFramework中事务操作(二)TransactionScope
查看>>
EF日期筛选异常:SqlServer.DATEDIFF”函数的 DATEPART 参数必须是文字字符串。
查看>>
AngularJS路由之ui-router(三)大小写处理
查看>>
AngularJs checkbox绑定
查看>>