gpt4 book ai didi

java - 找圈图像处理

转载 作者:太空宇宙 更新时间:2023-11-03 21:19:42 24 4
gpt4 key购买 nike

我正在使用 opencv 和 java 在图像上查找圆圈,到目前为止我有下面的图像。我正在使用 Hough 使用如下代码查找圆圈:

    Imgproc.medianBlur(result, result, 3);
Imgproc.medianBlur(result, result, 3);
Imgproc.medianBlur(result, result, 3);
Mat circles = new Mat();
Imgproc.HoughCircles(result, circles, Imgproc.CV_HOUGH_GRADIENT, 1, 1, 200, 100, 30, 40);
System.out.println(circles.dump());

但是我得到了一个空的 Mat 来获得模糊和不模糊的结果。我应该如何修复此代码?

enter image description here

编辑:大家好!

多亏了你,我才有了这张照片。我正在使用这些参数:

Imgproc.HoughCircles(result, circles, Imgproc.CV_HOUGH_GRADIENT, 1, 20, 50, 10, 10, 40);

检测前我还在用medianBlur。

剩下的唯一问题就是为什么它会检测到这些小圆圈?我附上了精明检测的结果,我认为圆圈很明显。

enter image description here enter image description here

最佳答案

首先,circles结构不应为 cv::Mat但应该是 std::vector<cv::Vec3f> ;我认为这就是您没有得到任何结果的原因。请参阅 HoughCircles 上的文档详情..

花 5 分钟研究这些值,我为您准备了这个起点:

enter image description here

我使用的参数是,

cv::medianBlur(test_Circle, test_Circle, 7);
std::vector<cv::Vec3f> circles; // <- not that "circles" is not cv::Mat
cv::HoughCircles(test_Circle, circles, CV_HOUGH_GRADIENT, 1, 1, 300, 10, 10, 50);

稍微调整一下这些值后,您可以获得更明确的结果。

PS - 由于我是 C++ 用户,请原谅我将我所有的结构都采用这种格式。您可以轻松地将逻辑扩展到 Java。 :)

关于java - 找圈图像处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19983976/

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