OpenCV java获取像素颜色
我制作了以下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
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];
}
}