#include <QCoreApplication>
#include "core/core.hpp"
#include "highgui/highgui.hpp"
#include "imgproc/imgproc.hpp"
#include <iostream>
#include <time.h>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
cv::Mat image = cv::imread("hough1.jpg",1);
cv::namedWindow("HoughCircle",1);
cv::Mat imageHough;
cv::cvtColor(image,imageHough,CV_RGB2GRAY);
time_t c_start,c_end;
c_start = clock();
cv::GaussianBlur(imageHough,imageHough,cv::Size(5,5),1.5);
std::vector<cv::Vec3f> circles;
cv::HoughCircles(imageHough,circles,CV_HOUGH_GRADIENT,
2, //accumulator resolution (size of the image/2)
50, //minimum distance between two circles
200, //canny high threshold
50, //minimum number of votes
25,100);//min and max radius
std::vector<cv::Vec3f>::
const_iterator itc= circles .begin();
while(itc!= circles.end()){
cv::circle(imageHough,
cv::Point((*itc)[0],(*itc)[1]), //circle centre
(*itc)[2], //circle radius
cv::Scalar(255), //color
2); //thickness
++itc;
}
c_end = clock();
std::cout<<"time:"<<difftime(c_end,c_start);
cv::imshow("HoughCircle",imageHough);
return a.exec();
}
Hough 圆检测 using OpenCV2.45
最新推荐文章于 2024-08-02 09:40:37 发布