opencv c++圆检测

cpp 复制代码
#include<iostream>
#include<opencv.hpp>
using namespace std;


int main()
{
	cv::Mat img = cv::imread("./cap_6_ROI.bmp");
	/*cv::imshow("w", img);
	cv::waitKey();*/

    cv::Mat grayImage;
    cv::cvtColor(img, grayImage, cv::COLOR_BGR2GRAY);  // 将图像转换为灰度格式

    std::vector<cv::Vec3f> circles;
    cv::HoughCircles(grayImage, circles, cv::HOUGH_GRADIENT, 1, 50, 500, 50, 0, 0);  // 检测圆

    if (circles.size() != 1)
    {
        return -255;
    }

    for (size_t i = 0; i < circles.size(); i++) {
        cv::Point center(cvRound(circles[i][0]), cvRound(circles[i][1]));  // 计算圆心坐标
        cout << center.x << ", " << center.y << endl;
        
        int radius = cvRound(circles[i][2]);  // 计算半径
        cv::circle(img, center, radius, cv::Scalar(0, 255, 0), 2, cv::LINE_AA);  // 绘制圆
        cv::circle(img, center, 3, cv::Scalar(0, 0, 255), -1);// 圆心
    }

    cv::imshow("Circle Detection", img);
    cv::waitKey(0);

	return 0;
}

cv::HoughCircles函数的各个参数的意义如下:

image:输入图像,应为单通道8位或32位浮点类型。这是要在其中检测圆的图像。
circles:输出向量,用于存储检测到的圆的信息。每个元素是一个三元组(x, y, radius),代表一个检测到的圆的圆心坐标(x, y)和半径radius
method:检测方法,应为CV_HOUGH_GRADIENT。这是一种基于梯度的霍夫变换方法,用于检测圆。
dp:累加器分辨率与图像分辨率之比的倒数。通常设置为1。较大的值会降低累加器的分辨率,从而提高检测速度,但可能会导致检测精度下降。
minDist:检测到的圆之间的最小距离。如果两个圆的圆心距离小于该值,则只保留其中一个圆。
param1:Canny边缘检测的高阈值。边缘强度高于该值的像素被认为是边缘点。
param2:圆心投票阈值,应大于等于param1。只有在累加器中投票数超过该阈值的圆才被认为是检测到的圆。
minRadius:检测到的圆的最小半径。小于该半径的圆将被忽略。
maxRadius:检测到的圆的最大半径。大于该半径的圆将被忽略。

调整这些参数可以影响圆的检测结果。你可以根据图像的特点和需求来调整这些参数,以获得最佳的圆检测效果。

相关推荐
只是甲39 分钟前
Text2SQL 系列博客 02:技术原理深度剖析 - 从自然语言到 SQL 的完整链路
人工智能·text2sql·nl2sql·ai agent·自助数据分析·data agent·agentic 数据洞察
懷淰メ1 小时前
【AI赋能】基于PyQt+YOLO+DeepSeek水上漂浮物检测系统(详细介绍)
人工智能·yolo·目标检测·计算机视觉·pyqt·漂浮物·水上漂浮物
EQUINOX11 小时前
【论文精读】| CLIP精读
大数据·人工智能
PC2005-cloud1 小时前
博文已索引但不展示:一次 Bing SEO 问题排查记录
服务器·人工智能
weixin_408099671 小时前
2026 图片去文字 API 实战:AI一键去除图片文字(附 Python / Java / PHP / JS 完整代码)
人工智能·api接口·图片去水印·石榴智能·ai图像修复·图片去文字
greenbbLV1 小时前
2026节日慰问品政策解读:合规标准升级与福利行业新趋势
人工智能·节日
奈斯先生Vector2 小时前
告别工具碎片化:基于 Nano Banana 全模态 AI 聚合架构搭建“文本-图像-视频”自动化协同生产线
运维·数据库·人工智能·架构·自动化·aigc·音视频
领麦微红外2 小时前
国产MEMS红外测温传感器:传感器+算法+产品级出厂标定一站式交付模式深度解读
人工智能·硬件工程·产品经理
mingo_敏2 小时前
DeepAgents : 检索(Retrieval)
人工智能·深度学习·langchain
微三云 - 廖会灵 (私域系统开发)2 小时前
消费即资产:积分增值异业联盟商业模式完整拆解(附落地逻辑、合规方案与盈利模型)
大数据·人工智能