编辑:让我们更具体一点. mat.get(row,col)返回一个double数组.这个数组是什么?
解决方法
What is the standard way to access and modify individual elements of a Mat in OpenCV4Android?
Mat就是我们在数学中称之为“矩阵”的东西 – 由行和列组成的矩形数组.那些“量”表示在图像Mat的情况下的像素(例如,矩阵的每个元素可以是图像Mat中的每个像素的颜色).从this教程:
07001
in the above image you can see that the mirror of the car is nothing
more than a matrix containing all the intensity values of the pixel
points.
那你怎么去迭代矩阵呢?这个怎么样:
for (int row=0; row<mat.rows(); row++) { for (int col=0; col<mat.cols(); col++ ) { //...do what you want.. //e.g. get the value of the 3rd element of 2nd row //by mat.get(2,3); } }
What is the standard way to access and modify individual elements of a Mat in OpenCV4Android?
通过使用函数get(x)(y)得到Mat元素的值,其中x是第一个坐标(行号),y是元素的第二个坐标(列号).例如,要获取名为bgrImageMat的BGR图像Mat的第7行的第4个元素,请使用Mat的get方法获取double类型的数组,其大小为3,每个数组元素代表每个Blue,BGR图像格式的绿色和红色通道.
double [] bgrColor = bgrImageMat.get();
Also,what is the format of the data for BGR (which is the default,I think) and grayscale? edit: Let’s make this more specific. mat.get(row,col) returns a double array. What is in this array?
您可以从网上阅读有关BGR颜色格式和灰度的信息.例如BGR和Grayscale.
简而言之,BGR颜色格式有3个通道:蓝色,绿色和红色.所以当mat是BGR图像时,mat.get(row,col)返回的double数组是一个大小为3的数组,它的每个元素分别包含每个蓝色,绿色和红色通道的值.
同样,灰度格式是1通道颜色格式,因此返回的double将具有1的大小.