在我的android应用中,我使用findNonZero()在二进制图像中查找和访问白点。

我将图像(大小为595 * 800的binMat)作为方法的输入,然后得到:

...
Mat wLocMat = Mat.zeros(binMat.size(), binMat.channels());
Core.findNonZero(binMat, wLocMat);

问题是:我不知道如何访问存储在wLocMat中的白点坐标!当我记录wLocMat.toString()时,我得到了:
[ 476000*1*CV_32SC2, isCont=true, isSubmat=false, nativeObj=0x74abd920, dataAddr=0x75bac010 ]

因此,我究竟如何才能访问存储在wLocMat中的坐标?

最佳答案

我的问题是将输出矩阵初始化为图像的大小。我只需要创建一个空的Mat并将其传递给函数:

...
Mat wLocMat = Mat.zeros();
Core.findNonZero(binMat, wLocMat);

然后,通过将wLocMat转换为MatOfPoint,可以轻松访问坐标:
MatOfPoint mop = new MatOfPoint(wLocMat);

关于android - OpenCV Java:如何访问findNonZero()返回的坐标?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18147611/

10-12 20:56