OPENCV霍夫变换使用方法——边缘检测+霍夫变换求出图像中的直线

本文介绍了如何使用OpenCV库通过边缘检测(Canny算法)和霍夫变换(CV_HOUGH_STANDARD)来寻找图像中的直线。首先将原始图像转换为灰度图,然后应用Canny算法,接着进行霍夫变换,最后在彩色图像上绘制检测到的直线。代码示例展示了完整的流程。
摘要由CSDN通过智能技术生成

#include <cv.h>
#include <highgui.h>
#include <math.h>

int main(int argc, char** argv)
{
    IplImage* src;
    if( argc == 2 && (src=cvLoadImage(argv[1], 0))!= 0)
    {
        IplImage* dst = cvCreateImage( cvGetSize(src), 8, 1 );
        IplImage* color_dst = cvCreateImage( cvGetSize(src), 8, 3 );
        CvMemStorage* storage = cvCreateMemStorage(0);//存储检测到线段,当然可以是N*1的矩阵数列,如果

实际的直线数量多余N,那么最大可能数目的线段被返回
        CvSeq* lines = 0;
        int i;
 IplImage* src1=cvCreateImage(cvSize(src->width,src->height),IPL_DEPTH_8U,1);

 cvCvtColor(src, src1, CV_BGR2GRAY);  //把src转换成灰度图像保存在src1中,注意进行边缘检测一定要

换成灰度图
        cvCanny( src1, dst, 50, 200, 3 );//参数50,200的灰度变换

        cvCvtColor( dst, color_dst, CV_GRAY2BGR );
#if 1
        lines = cvHoughLines2( dst, sto

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值