OpenCV Java:如何访问findNonZero()返回的坐标?

时间:2013-08-09 13:20:39

标签: android opencv

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

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

...
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中存储的坐标?!

1 个答案:

答案 0 :(得分:3)

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

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

然后,通过将wLocMat转换为MatOfPoint,可以轻松访问坐标:

MatOfPoint mop = new MatOfPoint(wLocMat);