OpenCV java获取像素颜色

OpenCV java获取像素颜色,java,opencv,Java,Opencv,我制作了以下Java程序: System.loadLibrary(Core.NATIVE_LIBRARY_NAME); Mat image = Highgui.imread("lena.png"); Imgproc.cvtColor(image, image, Imgproc.COLOR_BGR2GRAY); byte buff[] = new byte[ (int) (image.total() * image.channels())]; int a; int b; int

我制作了以下Java程序:

 System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
 Mat image = Highgui.imread("lena.png");

 Imgproc.cvtColor(image, image, Imgproc.COLOR_BGR2GRAY);
 byte buff[] = new byte[ (int) (image.total() * image.channels())];

 int a;
 int b;
 int picdata[][] =  new int[10][10] ;

 for (a=0 ; a<10;a++){
     for (b=0 ; b<10;b++){
        picdata[a][b]=  image.get(a, b,buff);    

     }
 }
如果我检查image.get(x,y),我会收到所需的数字(介于0和255之间),但我不知道如何将其写入picdata


如何更改代码以用灰度数据填充picdata?

我没有在Java中使用OpenCV的经验,但这段代码应该可以正常工作:

System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
 Mat image = Highgui.imread("lena.png");

 Imgproc.cvtColor(image, image, Imgproc.COLOR_BGR2GRAY);
 int a;
 int b;
 int picdata[][] =  new int[10][10] ;

 for (a=0 ; a<10;a++){
     for (b=0 ; b<10;b++){
        picdata[a][b]= (int) image.get(a, b);    

     }
 }
System.loadLibrary(Core.NATIVE\u LIBRARY\u NAME);
Mat image=Highgui.imread(“lena.png”);
Imgproc.cvt颜色(图像,图像,Imgproc.COLOR\u bgr2灰色);
INTA;
int b;
int picdata[][]=新int[10][10];

对于(a=0;a问题最终通过以下方式解决:

 byte buff[] = new byte[ (int) (image.total() * image.channels())];

 int a;
 int b;
 double picdata[][] =  new double[10][10] ;
 double[] temp;

 for (a=0 ; a<10;a++){
     for (b=0 ; b<10;b++){
         temp=   image.get(a, b);
         picdata[a][b]=temp[0]; 

     }
 }
byte buff[]=新字节[(int)(image.total()*image.channels())];
INTA;
int b;
双精度picdata[][]=新双精度[10][10];
双[]温度;

对于(a=0;aHi,遗憾的是,我仍然在
code
picdata[a][b]=(int)image.get(a,b)行中收到一个错误;它表示无法从double[]转换为int。我打算用图像的rgb或灰度值填充矩阵以进行进一步处理
 byte buff[] = new byte[ (int) (image.total() * image.channels())];

 int a;
 int b;
 double picdata[][] =  new double[10][10] ;
 double[] temp;

 for (a=0 ; a<10;a++){
     for (b=0 ; b<10;b++){
         temp=   image.get(a, b);
         picdata[a][b]=temp[0]; 

     }
 }