Я использую opencv для преобразования растрового изображения Android в grescale с помощью opencv. ниже код, который я использую,
IplImage image = IplImage.create( bm.getWidth(), bm.getHeight(), IPL_DEPTH_8U, 4); //creates default image
bm.copyPixelsToBuffer(image.getByteBuffer());
int w=image.width();
int h=image.height();
IplImage grey=cvCreateImage(cvSize(w,h),image.depth(),1);
cvCvtColor(image,grey,CV_RGB2GRAY);
bm — исходное изображение. Этот код отлично работает и преобразуется в оттенки серого, я проверил его, сохранив на SD-карту, а затем снова загрузив, но когда я пытаюсь загрузить его, используя метод, описанный ниже, мое приложение вылетает, любые предложения.
bm.copyPixelsFromBuffer(grey.getByteBuffer());
iv1.setImageBitmap(bm);
iv1 - это изображение, в котором я хочу установить bm.