欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Opencv之霍夫变化--直线/圆检测

程序员文章站 2024-01-28 09:57:04
...

程序
#include “stdafx.h”

//本节讲述 图像处理之 霍夫变化直线;
#include <opencv2/opencv.hpp>
#include
#include <math.h>

using namespace std;
using namespace cv;

Mat src, dst, dst1, dst2, dst3, dst4, dst6, dst5, gray_src;
int threshold_value = 50;
int threshold_max = 255;

const char*output_title = “霍夫变换”;
char input_title[] = “原图”;

int main(int argc, char**argv)
{
src = imread(“C:/Users/Rubison.DELL/Desktop/图像处理资料/霍夫变换直线测试图.png”); //存放自己图像的路径
if (!src.data)
{
printf(“could not load image…\r\n”);
return -1;
}
namedWindow(input_title, CV_WINDOW_AUTOSIZE);
imshow(input_title, src);

Canny(src,gray_src,100,200);
cvtColor(gray_src,dst,CV_GRAY2BGR);
imshow("结果1",gray_src);

vector<Vec4i> plines;
HoughLinesP(gray_src,plines,1,CV_PI/180.0,10,0,11);  //得出的plines时一个含有四个向量的数组,为别为一条直线的两点(x1,y1,x2,y2)
Scalar color = Scalar(0,0,255);
for (size_t i = 0; i < plines.size(); i++)
{
	Vec4i hline = plines[i];
	line(dst, Point(hline[0], hline[1]), Point(hline[2], hline[3]), color, 3, CV_AA); 
}
imshow("结果图2",dst);
waitKey(0);
destroyAllWindows();
return 0;

}

运行结果
Opencv之霍夫变化--直线/圆检测例程2
Opencv之霍夫变化--直线/圆检测
例程3Opencv之霍夫变化--直线/圆检测