gpt4 book ai didi

opencv - emguCV 获得最大的 blob

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

我正在研究颜色跟踪..
我正在专门跟踪一个橙色球,也许是一个篮球球,以及用于 body 的 kinect,我正在制作一个罚球投篮指南。
这是我的情况

我已经对我的图像进行了阈值处理,对其进行了侵 eclipse 以消除噪音和其他无关紧要的物体(非球),然后放大了几次以强调球..
所以我得到了最终的二进制图像 - 我已经成功隔离了球..还有其他 Blob ..(不是球的较小 Blob )..我如何获得最大的 Blob (球) 并放置一个边界框?

顺便说一句,我试过霍夫圈,但这很慢,,..谢谢!一些代码会很有用

最佳答案

这是我用来获取图像中最大 blob 的代码:

public static Blob FindLargestObject(Image<Gray, byte> block, Rectangle rectangle)
{
Image<Gray, byte> mask = block.CopyBlank();

Contour<Point> largestContour = null;
double largestarea = 0;

for (var contours = block.FindContours(CHAIN_APPROX_METHOD.CV_CHAIN_APPROX_SIMPLE,
RETR_TYPE.CV_RETR_EXTERNAL); contours != null; contours = contours.HNext)
{
if (contours.Area > largestarea)
{
largestarea = contours.Area;
largestContour = contours;
}
}

// fill the largest contour
mask.Draw(largestContour, new Gray(255), -1);

return new Blob(mask, largestContour, rectangle);
}

对于 Blob:
public class Blob 
{
Image<Gray,byte> Mask{ get; set; }
Contour<Point> Contour { get; set; }
Rectangle Rectangle { get; set; }
}

该 blob 将包含您想要获取的所有信息。

关于opencv - emguCV 获得最大的 blob,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15177195/

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