android opencv xamarin.android opencv-contour

OpenCV FindContours no encuentra contornos en Android



xamarin.android opencv-contour (0)

Estoy tratando de encontrar los contornos de una imagen, usando OpenCV en la construcción de Android con Xamarin (detalles sobre las versiones a continuación).

No puedo hacer que la función FindCountours devuelva ningún contorno (la lista está vacía), incluso cuando se utiliza una pseudoimagen como la de abajo. Otro problema es que hay un contorno en el objeto de jerarquía.

Funciona cuando se ejecuta desde Python en Windows.

¿Alguien sabe cuál podría ser la causa?

Mat aoiHsv = new Mat(new Size(80, 80), CvType.Cv8uc3); for (int i = 20; i < 40; i++) { for (int j = 20; j < 40; j++) { aoiHsv.Put(i,j, new byte[] {180, 255, 255}); } } Mat mask = new Mat(); OpenCV.Core.Core.InRange(aoiHsv, new Scalar(179, 255, 255), new Scalar(255, 255, 255), mask); // Find contours IList<MatOfPoint> contours = new List<MatOfPoint>(); Mat hierachy = new Mat(); Imgproc.FindContours(mask, contours, hierachy, Imgproc.RetrCcomp, Imgproc.ChainApproxNone);

Información de la versión:

  • OpenCV-3.1.0
  • Android 5.1 API 22

Encontré una solución: la lista de contornos debe ser una JavaList, es decir.

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