在Java OpenCV中替换像素的等效代码



我目前正在使用OpenCV做一个android应用程序,其中Java用于处理图像分割。我需要将像素从标签替换为rgb_image。Java中是否有与下面c++代码类似的代码来执行类似的任务?

    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;
    }

Thanks in advance

尝试使用Mat.get()方法获取像素值。如:

        byte[] vec3=new byte[3];
    for(int i=0;i<src.cols();i++)
    {
        for(int j=0;j<src.rows();j++)
        {
            src.get(j, i, vec3);
        }
    }

有人知道如何使用迭代器的方法吗?我不熟悉这个

相关内容

  • 没有找到相关文章

最新更新