C++ opencv霍夫圓檢測(cè)使用案例詳解
本程序是一個(gè)最簡(jiǎn)單的霍夫圓檢測(cè)函數(shù)的使用案例,剛剛學(xué)會(huì)的用法,發(fā)一下,可以參考,參數(shù)啥的可根據(jù)圖片調(diào)節(jié)。
#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);//邊緣檢測(cè) 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); }
主函數(shù)調(diào)用
int main(int, char **argv) { Mat src = imread("D:/YUAN.jpg");//只能讀八位或者小數(shù)圖像,通道順序B G R 取值空間為0-255 if (src.empty()) { cout<<"cant read"; return -1; } QuickDemo qd; qd.ColorSpace_Demo(src); waitKey(0); destroyAllWindows; return 0; }
運(yùn)行效果如下
到此這篇關(guān)于C++ opencv霍夫圓檢測(cè)使用案例詳解的文章就介紹到這了,更多相關(guān)C++ opencv霍夫圓檢測(cè)使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- C++?opencv圖像處理實(shí)現(xiàn)圖片邊緣檢測(cè)示例
- C++ OpenCV實(shí)戰(zhàn)之網(wǎng)孔檢測(cè)的實(shí)現(xiàn)
- C++ OpenCV實(shí)戰(zhàn)之標(biāo)記點(diǎn)檢測(cè)的實(shí)現(xiàn)
- C++?OpenCV實(shí)戰(zhàn)之車道檢測(cè)
- C++?OpenCV實(shí)現(xiàn)二維碼檢測(cè)功能
- opencv3/C++ 實(shí)現(xiàn)SURF特征檢測(cè)
- opencv3/C++實(shí)現(xiàn)霍夫圓/直線檢測(cè)
- C++利用opencv實(shí)現(xiàn)人臉檢測(cè)
- C++利用Opencv實(shí)現(xiàn)多個(gè)圓形檢測(cè)
相關(guān)文章
C語(yǔ)言中QString與QByteArray互相轉(zhuǎn)換的方法
本文主要介紹了C語(yǔ)言中QString與QByteArray互相轉(zhuǎn)換的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-05-05vector, list, map在遍歷時(shí)刪除符合條件的元素實(shí)現(xiàn)方法
下面小編就為大家?guī)?lái)一篇vector, list, map在遍歷時(shí)刪除符合條件的元素實(shí)現(xiàn)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-12-12OpenCV使用GrabCut實(shí)現(xiàn)摳圖功能
Grabcut是基于圖割(graph cut)實(shí)現(xiàn)的圖像分割算法,它需要用戶輸入一個(gè)bounding box作為分割目標(biāo)位置,實(shí)現(xiàn)對(duì)目標(biāo)與背景的分離/分割。本文將使用GrabCut實(shí)現(xiàn)摳圖功能,需要的可以參考一下2023-02-02