Я хочу, чтобы преобразовать фотографии с помощью Java и OpenCV от RGB к серымJava & OpenCV не может преобразовать RGB .GIF изображения Греет
Все расширения изображений работают правильно, и я беру серое изображение,
просто если я .GIF изображение (не двигается), это дает мне эту ошибку:
OpenCV Error: Assertion failed (scn == 3 || scn == 4) in cv::cvtColor
код Java:
Mat scrImg = Highgui.imread(path);
Mat dstImg = new Mat(scrImg.rows(),scrImg.cols(),scrImg.type());
Imgproc.cvtColor(scrImg, dstImg, Imgproc.COLOR_RGB2GRAY);
private static BufferedImage Mat2BufferedImage(Mat matrix){
\t BufferedImage bimOut;
\t int type;
\t if(matrix.channels() == 1)
\t \t type = BufferedImage.TYPE_BYTE_GRAY;
\t \t
\t else
\t \t type = BufferedImage.TYPE_3BYTE_BGR;
\t
\t int dataLength = matrix.channels()*matrix.cols()*matrix.rows();
\t byte [] buffer = new byte[dataLength];
\t bimOut = new BufferedImage(matrix.cols(),matrix.rows(),type);
\t matrix.get(0,0,buffer);
\t final byte[] bimPixels = ((DataBufferByte) bimOut.getRaster().getDataBuffer()).getData();
\t System.arraycopy(buffer, 0, bimPixels, 0, buffer.length);
\t
\t return bimOut;
}
Вы можете проверить, было ли загружено изображение tje src успешно? Можете ли вы выводить src.channels? – Micka
Когда я добавляю .gif-образ, он загружен успешно, но проблема в том, когда я хочу преобразовать его в изображение GRAY. – Saad
можете ли вы выводить/печатать количество каналов исходного изображения? – Micka