gpt4 book ai didi

java - OpenCV Android,绘制最大轮廓,出现问题

转载 作者:行者123 更新时间:2023-12-01 06:14:29 25 4
gpt4 key购买 nike

我正在尝试绘制最大的轮廓,我正在实时工作,处理每个相机帧。我的输入图像将是手工的,我有一些限制 - 黑色背景,没有镜面光。

我希望最大的轮廓尽可能接近下图 enter image description here

我的代码如下,我引用了很多网上的示例,我几乎认为我的代码没有任何问题。

        mRgba = inputFrame.gray();
contours = new ArrayList<MatOfPoint>();
mcontours = new ArrayList<MatOfPoint>();
List<Mat> hull = new ArrayList<Mat>(contours.size());

hierarchy = new Mat();
Imgproc.Canny(inputFrame.gray(), mIntermediateMat, 50, 50);
Imgproc.findContours(mIntermediateMat, contours, hierarchy,
Imgproc.RETR_EXTERNAL, Imgproc.CHAIN_APPROX_SIMPLE);


for (int idx = 0; idx != contours.size(); ++idx)
{
Mat contour = contours.get(idx);
double contourarea = Imgproc.contourArea(contour);
Log.i(TAG, "maxAreaIdx =" + idx + "contourarea = " + contourarea);
if (contourarea > maxArea)
{
maxArea = contourarea;
maxAreaIdx = idx;
Log.i(TAG, "maxAreaIdx =" + maxAreaIdx + "MaxArea = " + maxArea);

}

}

if(maxAreaIdx > 0 && maxAreaIdx < contours.size())
mcontours.add(contours.get(maxAreaIdx));
else
break;

Imgproc.cvtColor(mIntermediateMat, mRgba, Imgproc.COLOR_GRAY2RGBA,
4);
hierarchy.release();
Imgproc.drawContours(mRgba, mcontours, -1, CONTOUR_COLOR, -1);

现在,我得到的只是其中的一小部分。我目前的理解是 OpenCV 本身无法检测大的连续轮廓。请引用下面的图片。

enter image description here

不仅如此,我还对其他图像进行了测试,但不知何故我无法获得大的连续轮廓。

我先申请Canny有错吗?有更好的技术吗?我希望得到手部轮廓的轮廓。将来,我想将它与保存的类似轮廓数据库进行比较。我走在正确的道路上吗?

最佳答案

试试这个:

List<MatOfPoint> mContours = new ArrayList<MatOfPoint>();
Mat hierarchy = new Mat();

//"tes" is binary image from threshold result
Imgproc.findContours(tes, mContours, hierarchy, Imgproc.RETR_EXTERNAL, Imgproc.CHAIN_APPROX_SIMPLE, new Point(0,0));
Mat overlay = contImg; //this is source image RGB
for(int i = 0; i < mContours.size(); i++)
{
Imgproc.drawContours(overlay, mContours, -1, red, 2); //draw contour
}
return overlay;

希望对你有帮助

关于java - OpenCV Android,绘制最大轮廓,出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27685011/

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