DSP

霍夫圆检测

2019-07-13 15:07发布

#include "opencv2/highgui/highgui.hpp" #include "opencv2/imgproc/imgproc.hpp" #include #include using namespace cv; int main(int argc, char** argv) { //cv::Mat srcImage = imread("..\images\circle.jpg"); cv::Mat srcImage = imread("22.jpg"); if (!srcImage.data) return -1; cv::imshow("srcImage", srcImage); // 转换为灰度图像 cv::Mat src_gray; cvtColor(srcImage, src_gray, CV_BGR2GRAY); // 高斯平滑滤波 GaussianBlur(src_gray, src_gray, Size(9, 9), 2, 2); std::vector circles; // 霍夫圆检测 HoughCircles(src_gray, circles, CV_HOUGH_GRADIENT, 1, src_gray.rows / 8, 200, 100, 0, 0); // 将得到的结果绘图 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(srcImage, center, 3, Scalar(0, 255, 0), -1, 8, 0); // 检测圆轮廓 circle(srcImage, center, radius, Scalar(120, 120, 120), 3, 8, 0); } cv::imshow("HoughResult", srcImage); cv::waitKey(0); return 0; }


转载:http://blog.csdn.net/zhuwei1988

热门文章