服务器之家

服务器之家 > 正文

C++ opencv霍夫圆检测使用案例详解

时间:2022-01-05 13:27     来源/作者:小李子学技术

本程序是一个最简单的霍夫圆检测函数的使用案例,刚刚学会的用法,发一下,可以参考,参数啥的可根据图片调节。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#pragma once
#include<quickopencv.h>
#include<vector>
#include <stdio.h>
#include <iostream>
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include<opencv2/opencv.hpp>
 
using namespace cv;
using namespace std;
  
class QuickDemo {
public:
    void ColorSpace_Demo(Mat &image);
 
 
};
 
void QuickDemo::ColorSpace_Demo(Mat &image)
 
{
    Mat gray, hsv, img3;
    cvtColor(image, gray, COLOR_BGR2GRAY);
    cvtColor(image, hsv, COLOR_BGR2HSV);
    //H取值0-180表示颜色 S取值0-255表示饱和度 V0-255表示亮度
    namedWindow("huidu", WINDOW_FREERATIO);
    
    imshow("huidu", gray);
 
GaussianBlur(gray, gray, Size(9, 9), 0, 0);//高斯模糊
    medianBlur(gray, gray, 3);//中值滤波
    
 
vector<Vec3f> circles;
HoughCircles(gray, circles, HOUGH_GRADIENT, 1, 1, 100,100, 0,00 );
 
Canny(gray, img3, 50, 100);//边缘检测
 
for (size_t i = 0; i < circles.size(); i++)
          {
             Point center(cvRound(circles[i][0]), cvRound(circles[i][1]));
              int radius = cvRound(circles[i][2]);
               // circle center
                   circle(gray, center, 3, Scalar(60, 30, 60), -1, 5, 0);
               // circle outline
                   circle(gray, center, radius, Scalar(0, 60, 60), 3, 3, 0);
                   
           }
namedWindow("Hough Circle Transform Demo", WINDOW_FREERATIO);
    imshow("Hough Circle Transform Demo",gray);
}

主函数调用

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
int main(int, char **argv)
{
    Mat src = imread("D:/YUAN.jpg");//只能读八位或者小数图像,通道顺序B G R 取值空间为0-255
 
    if (src.empty())
    {
        cout<<"cant read";
    
    return -1;
    }
    
    QuickDemo qd;
    qd.ColorSpace_Demo(src);
 
 
    waitKey(0);
    
    destroyAllWindows;
    
 
    return 0;
}

运行效果如下

C++ opencv霍夫圆检测使用案例详解

到此这篇关于C++ opencv霍夫圆检测使用案例详解的文章就介绍到这了,更多相关C++ opencv霍夫圆检测使用内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/weixin_54598791/article/details/120247390

相关文章

热门资讯

yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
蜘蛛侠3英雄无归3正片免费播放 蜘蛛侠3在线观看免费高清完整
蜘蛛侠3英雄无归3正片免费播放 蜘蛛侠3在线观看免费高清完整 2021-08-24
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
2021年耽改剧名单 2021要播出的59部耽改剧列表
2021年耽改剧名单 2021要播出的59部耽改剧列表 2021-03-05
返回顶部