本次实验是检测图像中的直线,用到了HoughLines()和HoughLinesP()函数,其中HoughLinesP()称为累计概率霍夫变换,实验结果显示累计概率霍夫变换要比标准霍夫变换的效果好。具体的参数介绍书中网上都有,可参照此博客https://www.cnblogs.com/skyfsm/p/6881686.html 

 #include<opencv2/opencv.hpp>
#include<opencv2/imgproc/imgproc.hpp>
#include<iostream>
using namespace cv;
using namespace std; Mat midImage, dstImage; // 临时变量和目标图的定义
void HoughLines_p();
int main()
{
//载入原图
Mat src = imread("D:/bei1.jpg");
namedWindow("原图", CV_WINDOW_AUTOSIZE);
imshow("原图", src);
//先进行边缘检测 在进行灰度变换
Canny(src, midImage, , , );
imwrite("D:/learn-opencv/can.jpg", midImage);
cvtColor(midImage, dstImage, CV_GRAY2BGR); //进行霍夫线变换
vector<Vec2f>lines; //定义一个矢量结构lines用于存放得到的线段矢量集合
HoughLines(midImage, lines, , CV_PI / , , , ); //依次在图中做出每条线段
for (size_t i = ; i < lines.size(); i++)
{
float r = lines[i][];
float theta = lines[i][]; Point pt1, pt2;
double a = cos(theta), b = sin(theta);
double x0 = a * r, y0 = b * r;
pt1.x = cvRound(x0 + * (-b));
pt1.y = cvRound(y0 + * (a));
pt2.x = cvRound(x0 - * (-b));
pt2.y = cvRound(y0 - * (a)); line(dstImage, pt1, pt2, Scalar(, , ), , LINE_AA);
} //HoughLines_p();累积概率【霍夫变换】
imshow("边缘检测后的图", midImage);
imshow("显示效果图", dstImage);
imwrite("D:/learn-opencv/dstImage.jpg", dstImage);
waitKey();
return(); } //累积概率【霍夫变换】
void HoughLines_p()
{
vector<Vec4i>lines;
HoughLinesP(midImage, lines, , CV_PI / , , , ); for (size_t i = ; i < lines.size(); i++)
{
Vec4i l = lines[i];
line(dstImage, Point(l[], l[]), Point(l[], l[]), Scalar(, , ), , LINE_AA);
}
}

显示效果:

1.原图

2.canny边缘检测效果图

3.标准霍夫变换图

4.累计概率霍夫变换图

霍夫直线检测 opencv的更多相关文章

  1. opencv:霍夫直线检测

    #include <opencv2/opencv.hpp> #include <iostream> using namespace cv; using namespace st ...

  2. Android开发中的OpenCV霍夫直线检测(Imgproc.HoughLines()&Imgproc.HoughLinesP())

    本文为作者原创,转载请注明出处(http://www.cnblogs.com/mar-q/)by 负赑屃   //2017-04-21更新: 很多网友希望能得到源码,由于在公司做的,所以不太方便传出来 ...

  3. 霍夫圆检测 opencv

    进行霍夫圆变换中有一个API:HoughCircles(). 第五个参数为double类型的minDist(),为霍夫变换检测到的圆的圆心之间的最小距离,即让算法能明显区分的两个不同圆之间的最小距离. ...

  4. OpenCV-Python 霍夫直线检测-HoughLinesP函数参数

    cv2.HoughLines()函数是在二值图像中查找直线,cv2.HoughLinesP()函数可以查找直线段. cv2.HoughLinesP()函数原型: HoughLinesP(image, ...

  5. opencv:霍夫圆检测

    #include <opencv2/opencv.hpp> #include <iostream> using namespace cv; using namespace st ...

  6. opencv直线检测在c#、Android和ios下的实现方法

    opencv直线检测在c#.Android和ios下的实现方法 本文为作者原创,未经允许,不得转载 :原文由作者发表在博客园:http://www.cnblogs.com/panxiaochun/p/ ...

  7. Python+OpenCV图像处理(十四)—— 直线检测

    简介: 1.霍夫变换(Hough Transform) 霍夫变换是图像处理中从图像中识别几何形状的基本方法之一,应用很广泛,也有很多改进算法.主要用来从图像中分离出具有某种相同特征的几何形状(如,直线 ...

  8. 【python+opencv】直线检测+圆检测

     Python+OpenCV图像处理—— 直线检测 直线检测理论知识: 1.霍夫变换(Hough Transform) 霍夫变换是图像处理中从图像中识别几何形状的基本方法之一,应用很广泛,也有很多改进 ...

  9. opencv之霍夫曼变换

    霍夫变换不仅可以找出图片中的直线,也可以找出圆,椭圆,三角形等等,只要你能定义出直线方程,圆形的方程等等. 不得不说,现在网上的各种博客质量真的不行,网上一堆文章,乱TM瞎写,误人子弟.本身自己就没有 ...

随机推荐

  1. POS开发问题 - 输入非数字弹出提示框的实现

    业务场景: 一个输入框,如果输入非数字,那么弹出提示框,如下图 点击确定,输入框自动清空非数字的输入,并且自动获得焦点,如图: 实现方案: 实现的想法: 给输入框添加一个 input 事件,给输入框绑 ...

  2. sharepoint2007就地升级2010系列(四)升级数据库

    上一篇我们完成了系统的升级,今天我们来看一下SQL2005X64是如何升级到SQL2008X64的. 首先,我们先停掉所有sharepoint的服务 其实网上的文档并没有写到这一步,但是我个人觉得,要 ...

  3. Javascript基础--数据类型

    一.基本数据类型 1.字符类型:表示字符的类型,例:'aaa',"aaaa",'123456',''(空字符) 2.数字类型:表示数字的类型,例:0,1,3.1415936等 特殊 ...

  4. C++常用字符串分割方法(转)

    1.用strtok函数进行字符串分割 原型: char *strtok(char *str, const char *delim); 功能:分解字符串为一组字符串. 参数说明:str为要分解的字符串, ...

  5. memcached 的配置及 spymemcached 客户端简单使用

    Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.同时也可以用作不同系统之间的数据共享.应用比较广泛.下面介绍一下环境的memcached环境的搭建及简单实 ...

  6. ring0 SSDTHook 实现x64/x86

    #include "HookSSDT.h" #include <ntimage.h> #define SEC_IMAGE 0x001000000 ULONG32 __N ...

  7. QT学习之QString的arg方法

    在QT的QString中,arg方法类似于C中的printf中使用的格式输出符(只是有点类似). 在QT5的帮助文档中,可以看出以下几点: 使用arg(str1, str2, str3)这种方法进行替 ...

  8. DOM笔记(十二):又谈原型对象

    因为之前谢过一篇关于原型对象的笔记:浅谈JavaScript中的原型模式.现在我又重新看到这个话题,对原型有了进一步的理解,所以,又要谈谈原型对象. 一.理解原型对象 创建的每一个函数都有一个prot ...

  9. 昂贵的聘礼,(最短路的应用),Poj(1063)

    题目链接:http://poj.org/problem?id=1062 很好的一道中文题. 思路: 把每种替换当做一条边,权重为交易优惠,就是求原点0到物品1的最短路. 这里有限制条件,每个节点还有等 ...

  10. django.template.exceptions.TemplateSyntaxError: 'article_tags' is not a registered tag library.

    django.template.exceptions.TemplateSyntaxError: 'article_tags' is not a registered tag library. Must ...