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
);
}
查看全文
相关阅读:
kubernetes 将pod运行在某些特定的节点上,给节点打标签
kubernetes 安装metrics-server
数组基本内容,如有遗漏还请指出!
ES6新属性(追加)
ES6新属性笔记
Flex 布局教程
你知道js中的变量你会定义吗?那常量呢?
ES6-01:常量与变量的声明
三种方法实现js中类的继承
JS完成页面跳转并传参的方法|附加:循环遍历对象
原文地址:https://www.cnblogs.com/wqj1212/p/1010355.html
最新文章
给a标签herf属性赋值时,必须加http://
Java错误:很奇怪的错误。。。
linux 用户管理
Centos7,配置防火墙,开启端口
history 基本用法
php 带省略号的分页
linux 中部署 rsync 实现文件远程备份及 同步
mysql 用存储过程插入11位 随机数
nginx 下 php 无法执行,虚拟主机 无法使用
thinkphp5 tp5 与 nginx 搭配在根目录和子目录中如何设置伪静态
热门文章
win7 下安装使用 nginx 出现500错误
tar 压缩指令基本用法
git 常用命令
nfs 权限问题
kubernetes 报错汇总
linux 安装所有软件可以使用这个网站搜索RPM包
kubernetes-kubeadm自动生成的证书过期的解决方法
kubeadm的安装步骤(HA)
kubernetes-DNS解析很慢或者超时的问题
kubernetes 创建用户配置文件来访问集群API
Copyright © 2011-2022 走看看