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
);
}
查看全文
相关阅读:
javaweb基础----省市县三级联动(javascript版)
javaweb开发出错排查思路
javaweb基础----使用原生fileupload上传文件时找不到上传的文件位置
javaweb基础----Tomcat启动失败(Tomcat9)
javaweb基础----Tomcat端口被占用
命令行显示
java开发环境
java se ee me 区别
解决win10 2503 2502 权限等问题
浏览器只有ie可以登录
原文地址:https://www.cnblogs.com/wqj1212/p/1010355.html
最新文章
分页
Table隔行换色
Table样式设置
测试String.Format中的Format参数
关于找工作
一些 无聊的东西
AS 学习笔记 for in 和 for each in
百度地图api-浏览器定位获取当前位置的经纬度
Xcode11.2打包上架项目报错
ios原生实现获取用户位置,用CLLocationManager实现定位
热门文章
ios启动页显示不全 LaunchScreen设置启动页后,启动页显示在状态栏的下方问题总结
ios 指定词汇释义、名词解释,在名词相应位置弹出释义弹框需求的解决
eclipse里写js代码没有代码提示功能安装插件教程
新安装的eclipse没有代码提示的设置
从mysql数据库版本与驱动jar包版本不匹配到把整个开发环境换一遍的过程
the item height must be less than the height of 导航下scrollview产生偏移的问题
ios用lable和textview加载html标签
利用Xcode自带的Instruments中Leaks检测内存泄露
javaweb基础----使用ajax校验用户名是否重复
javaweb基础----使用c3p0数据库连接池时警告的处理
Copyright © 2011-2022 走看看