opencv+vs2008实现canny边缘检测与hough变换检测直线并用红线在原图标出直线
2015-08-02 08:59
573 查看
以改进的算法
#include<opencv2\opencv.hpp>
#include <iostream>
using namespace std;
using namespace cv;
int main()
{
Mat image=imread("sishiduerci.bmp");
Mat I;
cvtColor(image,I,CV_BGR2GRAY);
Mat contours;
Canny(I,contours,125,350);
vector<Vec4i> lines;
// 检测直线,最小投票为90,线条不短于50,间隙不小于10
HoughLinesP(I,lines,1,CV_PI/180,80,50,3);
//vector<Vec4i>::const_iterator it=lines.begin();
for (size_t i = 0; i < lines.size(); i++)//size_t即unsigned int
{
Vec4i k = lines[i];//此处为英文字母l
line(image, Point(k[0], k[1]), Point(k[2], k[3]), Scalar(0, 255, 255), 3);
}
namedWindow("Lines");
imshow("contours",image);
waitKey(0);
return 0;
}
#include<opencv2\opencv.hpp>
#include <iostream>
using namespace std;
using namespace cv;
int main()
{
Mat image=imread("sishiduerci.bmp");
Mat I;
cvtColor(image,I,CV_BGR2GRAY);
Mat contours;
Canny(I,contours,125,350);
vector<Vec4i> lines;
// 检测直线,最小投票为90,线条不短于50,间隙不小于10
HoughLinesP(I,lines,1,CV_PI/180,80,50,3);
//vector<Vec4i>::const_iterator it=lines.begin();
for (size_t i = 0; i < lines.size(); i++)//size_t即unsigned int
{
Vec4i k = lines[i];//此处为英文字母l
line(image, Point(k[0], k[1]), Point(k[2], k[3]), Scalar(0, 255, 255), 3);
}
namedWindow("Lines");
imshow("contours",image);
waitKey(0);
return 0;
}
相关文章推荐
- hadoop fs -mkdir testdata错误 提示No such file or directory
- yarn架构-概述
- docker中建立私有git服务器[gitlab]
- linux下gtk+一个将字符串大写化的小示例
- linux下gtk+一个将字符串大写化的小示例
- linux下gtk+一个将字符串大写化的小示例
- Linux 初体验之基础篇
- 加快网站访问速度
- Linux命令小技巧
- hadoop伪分布式配置及遇到的问题
- APACHE2.X 禁止服务器IP直接访问
- saltstack自动部署apache实例
- shell内部命令 ---文件系统类
- Linux下编译安装Mysql 5.5的简单步骤
- Linux syslog日志系统详解
- CentOS下将MySQL 5.1升级到MySQL 5.5的步骤
- 使用WatchService监控指定目录内的文件的改动
- shell内部命令 ---I/O类
- linux初学(二十一)之linux软件管理基础之YUM软件管理
- Linux学习笔记