我的代码读取图像并将像素值保存在double []类型的数组中。但是,我需要一个动态大小,所以我创建了一个arraylist并在arraylist中添加了数组。问题是我无法获得数组的大小,也无法从arraylist获取任何信息。它根本没有给我任何东西。问题是什么?请参阅下面的代码。
Java for android
public class img_pixel {
String src = "path_of_image.jpg";
Mat imgRead = Imgcodecs.imread(src, IMREAD_COLOR); //read a image
int row = imgRead.rows(); //get the number of rows
int col = imgRead.cols(); //get the number of cols
List <double[]> pixels = new ArrayList<>(); //Arraylist
public void cor() {
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
double[] rgb = imgRead.get(i, j); //array with information i, j
pixels.add(0, rgb);
}
}
for (int x = 0; x < pixels.size(); x++) { // for to get size of arraylist
Log.v("Size", "Size:" + pixels.get(x));
}
}
}
答案 0 :(得分:1)
您的问题表明对arraylist或数组如何工作缺乏了解。
pixels.size()
。该方法返回arraylist的长度。所以,你错了“也没有从arraylist获得任何信息”。Log.v("Size", "Size:"+pixels.get(x));
,我假设您尝试获取数组大小。但是,pixels.get(x)只返回一个数组对象,所以看起来你试图将double []
类型的东西转换为字符串并期望看到一个数组大小。你看到了问题吗?如果你想要数组的“大小”(我假设你的意思是“长度”),你需要使用length属性,例如pixels.get(x).length
。如果你真的想要这个尺寸,你需要做更多的工作。我建议找出你真正想要的信息然后做一些研究,比如“如何用Java获取数组的大小”。答案 1 :(得分:0)
如果你想在arraylist的位置x中使用double数组的大小,只需调用somethink,如
pixels.get(x).length;
但我很抱歉,我不确定能够理解这个问题!