相关疑难解决方法(0)

使用get()和put()访问OpenCV for Java中的像素值

我是使用OpenCV for JAVA的初学者.我想访问图像矩阵的各个像素值.因为,用于OpenCV的JAVA jar不提供像C++这样的好功能,我遇到了一些麻烦.经过大量的搜索,我发现了两种不同的方法,虽然没有正确解释(甚至在文档中都没有).我们可以使用get()和put()函数或者将mat数据转换为原始java类型(如数组).我试过两个但得到不同的输出结果!请帮助解释我做错了什么.我使用它们是错误还是其他一些愚蠢的问题.我仍然是新手,所以请原谅,如果这是一个愚蠢的问题.:)

情况1:使用get()函数

Mat A = Highgui.imread(image_addr); \\"image_addr" is the address of the image
Mat C = A.clone();
Size sizeA = A.size();
for (int i = 0; i < sizeA.height; i++)
    for (int j = 0; j < sizeA.width; j++) {
        double[] data = A.get(i, j);
        data[0] = data[0] / 2;
        data[1] = data[1] / 2;
        data[2] = data[2] / 2;
        C.put(i, j, data);
    }
Run Code Online (Sandbox Code Playgroud)

案例2:使用数组

Mat A = Highgui.imread(image_addr); \\"image_addr" is the address of the image
Mat …
Run Code Online (Sandbox Code Playgroud)

java android opencv image-processing computer-vision

10
推荐指数
1
解决办法
3万
查看次数