gpt4 book ai didi

c++ - HoughCircles()圆检测OpenCV C++的正确阈值

转载 作者:行者123 更新时间:2023-12-02 17:56:29 26 4
gpt4 key购买 nike

我想在C++中使用opencv检测图像中的圆圈。我已经尝试了dp,parm1和parm2的各种阈值,但是找不到正确的阈值。
圆的半径约为40像素。
我添加了一个链接到示例图像。为了正确的结果,我需要在HoughCircles()中使用哪些值?
链接到示例images

最佳答案

您可以使用以下参数值。这些设置能够检测图像中的圆圈。

cv::Mat img = cv::imread("75.bmp");
cv::Mat img_gray;
cv::cvtColor(img, img_gray, cv::COLOR_BGR2GRAY);
img_gray.convertTo(img_gray, CV_8UC1);
std::vector<cv::Vec3f> circles;
double minDist = 20;
double dp = 1;
double param1 = 200;
double param2 = 10;
int minRadius = 15;
int maxRadius = 25;
cv::HoughCircles(img_gray, circles, cv::HOUGH_GRADIENT, dp, minDist, param1, param2, minRadius, maxRadius);
if (circles.size() > 0) {
for (size_t current_circle = 0; current_circle < circles.size(); ++current_circle) {
cv::Point center(std::round(circles[current_circle][0]), std::round(circles[current_circle][1]));
int radius = std::round(circles[current_circle][2]);
cv::circle(img, center, radius, cv::Scalar(0, 255, 0), 1);
}
}

关于c++ - HoughCircles()圆检测OpenCV C++的正确阈值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64591549/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com