知识点看这个博客:
https://blog.csdn.net/qq_41167777/article/details/84940109
===========================
1 #include <opencv2/opencv.hpp> 2 #include <iostream> 3 using namespace std; 4 using namespace cv; 5 6 Mat src, dst, gray_src; 7 const char* input_win = "input"; 8 const char* out_put = "hough-line-detection"; 9 10 int main(int agrc, char** agrv) { 11 12 src = imread("C:\Users\32829\Desktop\aa.jpg"); 13 if (!src.data) { 14 printf("no load.. "); 15 return -1; 16 } 17 namedWindow(input_win, CV_WINDOW_AUTOSIZE); 18 namedWindow(out_put, CV_WINDOW_AUTOSIZE); 19 imshow(input_win, src); 20 21 Mat moutput; 22 medianBlur(src, moutput, 3); 23 cvtColor(moutput, moutput, CV_BGR2GRAY); 24 25 //霍夫圆检测 26 vector<Vec3f> pcircles; 27 HoughCircles(moutput, pcircles, CV_HOUGH_GRADIENT, 1, 10, 100, 30, 5, 100); 28 src.copyTo(dst); 29 for (size_t i = 0; i < pcircles.size(); i++) { 30 Vec3f cc = pcircles[i]; 31 circle(dst, Point(cc[0], cc[1]), cc[2], Scalar(0, 255, 255), 2, LINE_AA); 32 circle(dst, Point(cc[0], cc[1]), 2, Scalar(98, 23, 255), 2, LINE_AA); 33 } 34 imshow(out_put, dst); 35 waitKey(0); 36 return 0; 37 }
=================================