gpt4 book ai didi

Java Opencv 未检测轮廓。 imgproc.Drawcontours()

转载 作者:太空宇宙 更新时间:2023-11-03 23:12:07 25 4
gpt4 key购买 nike

我正在尝试在 Xamarin 上开发移动应用程序。首先,我正在为 Android 设备做这件事。我希望 Oncamera 功能能够自动检测轮廓并测量物体的大小。作为主要步骤,我正在尝试实时检测轮廓。阅读了很多表格和文档,但没有任何帮助

public Mat OnCameraFrame(CameraBridgeViewBase.ICvCameraViewFrame inputFrame)
{
Mat input = inputFrame.Rgba();
List<MatOfPoint> contours = new ArrayList<MatOfPoint>();
Mat gray = new Mat();
//Mat hierarchy = new Mat();
Imgproc.CvtColor(p0: input, p1: gray, p2: Imgproc.ColorRgb2gray);
Mat blur = new Mat();
Imgproc.GaussianBlur(gray, blur, new Size(7, 7), -2);
Mat thresh = new Mat();
Imgproc.Threshold(blur, thresh, 127, 250, Imgproc.ThreshBinary);
Mat edged = new Mat();
Imgproc.Canny(thresh, thresh, 25, 50);
Imgproc.Dilate(thresh, thresh, new Mat(), new Point(-1, 1), 1);
Mat hierarchy = thresh.Clone();
Imgproc.FindContours(hierarchy, contours, new Mat(),
Imgproc.RetrExternal, Imgproc.ChainApproxNone);
Java.Lang.JavaSystem.Out.Println("contours" + contours);
if (contours != null)
{
Java.Lang.JavaSystem.Out.Println("found contours");
for (int i = 0; i < contours.Count(); i++)
{
Imgproc.DrawContours(input, contours, i, new Scalar(255, 0, 0), -1);
}

}
else
{
Java.Lang.JavaSystem.Out.Println("no contours");
}
return input;

我在代码中使用了上面的逻辑。但是我在应用程序中的输出显示的是正常图像,上面没有绘制任何轮廓。如果我返回“thresh”,那么精明的边缘检测就可以正常工作。但是 Drawcontours 没有显示任何内容。我使用了 Contours.count(),因为我的 Xamarin ide 显示 contours.Size() 错误;

最佳答案

我遇到了类似的问题。就我而言,我已经更换了

List<MatOfPoint> contours = new ArrayList<MatOfPoint>();

IList<MatOfPoint> contours = new JavaList<MatOfPoint>();

关于Java Opencv 未检测轮廓。 imgproc.Drawcontours(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47638405/

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