gpt4 book ai didi

opencv - 如何改进物体检测?

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

我想改进我的目标检测项目。

首先,为了获得我的实际结果,我使用了 absdiff,然后我在下面的代码中使用了以下操作:

cv::threshold(subtractionResultEdges, threshold, 0, 255, CV_THRESH_BINARY | CV_THRESH_OTSU);

Sobel(threshold, sobel, CV_32F, 1, 0);

minMaxLoc(sobel, &minVal, &maxVal);

sobel.convertTo(sobel, CV_8U, 255.0 / (maxVal - minVal), -minVal * 255.0 / (maxVal - minVal));

dilate(subtractionResultEdges, subtractionResultEdges, verticalStructreMat, Point(-1, -1));


erode(subtractionResultEdges, filteredResult, verticalStructreMat, Point(-1, -1));

Canny(filteredResult, filteredResult, 33, 100, 3);

我的最后一个操作是 findContours(canny_output, *contours, *hierarchy, CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE, Point(0, 0));

这是我使用 accumulate 函数(20 帧)得到的每个函数和前景后的结果:

前景: http://j71i.imgup.net/foregroundc3dc.PNG

减法: http://p81i.imgup.net/subtractio2866.PNG

索贝尔: http://g51i.imgup.net/sobela1fb.PNG

阈值: http://p46i.imgup.net/treshold14c9.PNG

扩张、侵 eclipse 和 Canny:

http://q68i.imgup.net/canny2e1a.PNG

找到轮廓: http://v76i.imgup.net/contours6845.PNG

背景也是从accumulate函数中获取的。

您能帮助我获得更好的角点或轮廓检测吗?我需要它,以像素为单位获取对象大小。

提前致谢!

最佳答案

dilate/erode 使用更大的内核部分,可能是 (11, 11) 甚至更大,或者进行多次迭代(这可以设置为参数。这应该更好地连接检测到的对象的各个部分,然后你会有更少的轮廓。

要计算面积,您可以使用 contourArea()

关于opencv - 如何改进物体检测?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34163048/

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