zoukankan
html css js c++ java
Hough变换,找直线
/**/
/*
This is a standalone program. Pass an image name as a first parameter
of the program.Switch between standard and probabilistic Hough transform
by changing "#if 1" to "#if 0" and back
*/
#include
<
cv.h
>
#include
<
highgui.h
>
#include
<
math.h
>
int
main(
int
argc,
char
**
argv)
{
IplImage
*
src;
src
=
cvLoadImage(
"
1.bmp
"
,
-
1
);
IplImage
*
dst
=
cvCreateImage( cvGetSize(src),
8
,
1
);
IplImage
*
color_dst
=
cvCreateImage( cvGetSize(src),
8
,
3
);
CvMemStorage
*
storage
=
cvCreateMemStorage(
0
);
CvSeq
*
lines
=
0
;
int
i;
IplImage
*
src1
=
cvCreateImage(cvSize(src
->
width,src
->
height),IPL_DEPTH_8U,
1
);
cvCvtColor(src, src1, CV_BGR2GRAY);
//
cvCopy(src,src1);
cvCanny( src1, dst,
50
,
200
,
3
);
cvCvtColor( dst, color_dst, CV_GRAY2BGR );
#if
0
lines
=
cvHoughLines2( dst, storage, CV_HOUGH_STANDARD,
1
, CV_PI
/
180
,
150
,
0
,
0
);
for
( i
=
0
; i
<
lines
->
total; i
++
)
{
float
*
line
=
(
float
*
)cvGetSeqElem(lines,i);
float
rho
=
line[
0
];
float
theta
=
line[
1
];
CvPoint pt1, pt2;
double
a
=
cos(theta), b
=
sin(theta);
if
( fabs(a)
<
0.001
)
{
pt1.x
=
pt2.x
=
cvRound(rho);
pt1.y
=
0
;
pt2.y
=
color_dst
->
height;
}
else
if
( fabs(b)
<
0.001
)
{
pt1.y
=
pt2.y
=
cvRound(rho);
pt1.x
=
0
;
pt2.x
=
color_dst
->
width;
}
else
{
pt1.x
=
0
;
pt1.y
=
cvRound(rho
/
b);
pt2.x
=
cvRound(rho
/
a);
pt2.y
=
0
;
}
cvLine( color_dst, pt1, pt2, CV_RGB(
255
,
0
,
0
),
3
,
8
);
}
#else
lines
=
cvHoughLines2( dst, storage, CV_HOUGH_PROBABILISTIC,
1
, CV_PI
/
180
,
80
,
30
,
10
);
for
( i
=
0
; i
<
lines
->
total; i
++
)
{
CvPoint
*
line
=
(CvPoint
*
)cvGetSeqElem(lines,i);
cvLine( color_dst, line[
0
], line[
1
], CV_RGB(
255
,
0
,
0
),
3
,
8
);
}
#endif
cvNamedWindow(
"
Source
"
,
1
);
cvShowImage(
"
Source
"
, src );
cvNamedWindow(
"
Hough
"
,
1
);
cvShowImage(
"
Hough
"
, color_dst );
cvWaitKey(
0
);
}
查看全文
相关阅读:
layui分页获取数据,回显checkbox
批量选中 及下载
Module Federation原理剖析
EMP-面向未来微前端方案正式开源了!
Vue3 也能用上 Vue2 组件 From EMP
对比多种微前端方案
EMP微前端之教你如何搭建共享站
EMP微前端实战之cocos2d线上项目
微前端是什么,可以带来什么收益
Elasticsearch操作实践手册|建议收藏篇
原文地址:https://www.cnblogs.com/wqj1212/p/1010355.html
最新文章
[Java SE]Java方法的参数传递机制:值传递
[工具/IDE]IDEA常用效率插件
[Java EE]小结:生成全局唯一编号的思路
[Maven]Maven聚合工程
[Java JDK]ResultSet.next()
[SVN]SVN checkout 功能不可用 右键只看到提交和更新,没有显示checkout[转载]
[数据治理]数据治理领域存在的问题
[网络/Linux]处理安全报告/安全漏洞的一般流程与思路
[网络/Linux]CentOS7:OpenSSH升级到7.9p1 | 含: 安装Telnet/OpenSSH
[Linux]常用命令之【history】#查看历史操作#
热门文章
[网络]HTTPS下服务器与浏览器的通信:HTTPS背后的加密算法 | TLS := SSL [转载]
[网络/Linux]网络嗅探工具——nmap
[Excel/Word]常用函数与技巧
[Linux]ln:软链接与硬链接
kubeadm快速搭建K8s集群
Mysql精华总结,解决测试人员面试中碰到的一切Mysql问题(二)
Mysql精华总结,解决测试人员面试中的碰到的一切Mysql问题(一)
基于chaosblade的故障注入平台小试
通往大厂秘籍之Java高级测试开发
性能测试实战案例分享—连接未复用
Copyright © 2011-2022 走看看