首页 > 其他 > 详细

opencv:霍夫圆检测

时间:2020-02-18 00:57:29      阅读:113      评论:0      收藏:0      [点我收藏+]

技术分享图片
技术分享图片

#include <opencv2/opencv.hpp>
#include <iostream>

using namespace cv;
using namespace std;


int main(int argc, char** argv)
{
    Mat src = imread("f:/images/qq/circle.png");
    //Mat src = imread("f:/images/qq/yezi.png");
    if (src.empty())
    {
        printf("Could not find the image!\n");
        return -1;
    }

    namedWindow("input", WINDOW_AUTOSIZE);
    imshow("input", src);

    Mat gray;
    cvtColor(src, gray, COLOR_BGR2GRAY);
    GaussianBlur(gray, gray, Size(9,9), 2, 2);
    imshow("gray", gray);

    vector<Vec3f> circles;
    int minDist = 20;
    double min_radius = 5;
    double max_radius = 100;
    // 接收灰度图像,要降噪,对噪声很敏感
    HoughCircles(gray, circles, HOUGH_GRADIENT, 3, minDist, 100, 100, max_radius, min_radius);
    for (size_t t = 0; t < circles.size(); t++) {
        Point center(circles[t][0], circles[t][1]);
        int radius = round(circles[t][2]);
        // 绘制圆
        circle(src, center, radius, Scalar(0, 0, 255), 2, 8, 0);
        circle(src, center, 3, Scalar(255, 0, 0), 2, 8, 0);
    }

    imshow("hough circle demo", src);
    
    waitKey(0);
    destroyAllWindows();

    return 0;
}


opencv:霍夫圆检测

原文:https://www.cnblogs.com/wbyixx/p/12324145.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!