Cómo iterar en OpenCV4Android
Tenía este fragmento de código para convertir a Java usando OpenCV4Android. Pero no hay Java-Wrappers para matiterator en OpenCV4Android.
void show_result(const cv::Mat& labels, const cv::Mat& centers, int height, int width)
{
std::cout << "===\n";
std::cout << "labels: " << labels.rows << " " << labels.cols << std::endl;
std::cout << "centers: " << centers.rows << " " << centers.cols << std::endl;
assert(labels.type() == CV_32SC1);
assert(centers.type() == CV_32FC1);
cv::Mat rgb_image(height, width, CV_8UC3);
cv::MatIterator_<cv::Vec3b> rgb_first = rgb_image.begin<cv::Vec3b>();
cv::MatIterator_<cv::Vec3b> rgb_last = rgb_image.end<cv::Vec3b>();
cv::MatConstIterator_<int> label_first = labels.begin<int>();
cv::Mat centers_u8;
centers.convertTo(centers_u8, CV_8UC1, 255.0);
cv::Mat centers_u8c3 = centers_u8.reshape(3);
while ( rgb_first != rgb_last ) {
const cv::Vec3b& rgb = centers_u8c3.ptr<cv::Vec3b>(*label_first)[0];
*rgb_first = rgb;
++rgb_first;
++label_first;
}
cv::imshow("tmp", rgb_image);
cv::imwrite("Kmean/25.jpg", rgb_image);
cv::waitKey();
}
No puedo encontrar la clase MatIterator en Java. Vi una pregunta similar a esta publicada en la sección de soporte de OpenCV, pero no hubo respuesta.
1) ¿Hay alguna forma alternativa de convertir esto a Java (si es posible en iteraciones eficientes)? 2) No quiero usar código nativo.
Gracias por adelantado.