我是使用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)