Witam,
Stawiam pierwsze kroki w JavaCV. Napisałem program, który konwertuje obraz (pobrany z bazy danych) do odcieni szarości. Korzystam z przestarzałych struktur IplImage, które wymagają ręcznego zarządzania pamięcią.
Działająca metocda na IplImage wygląda następująco:
public BufferedImage grayScaleImage(BufferedImage image) {
// convert to 1 channel image
IplImage b = IplImage.createFrom(image);
IplImage c = opencv_core.cvCreateImage(opencv_core.cvGetSize(b), opencv_core.IPL_DEPTH_8U, 1);
cvCvtColor(b, c, CV_BGR2GRAY);
BufferedImage retImage = c.getBufferedImage();
cvReleaseImage(b);
cvReleaseImage(c);
return retImage;
}
Próba konwersji:
public BufferedImage grayScaleImageMat(BufferedImage image) {
// convert to 1 channel image
Mat b = Mat.createFrom(image);
Mat c = new Mat(b.size(), CV_8UC1);
// CvtColor(b, c, CV_BGR2GRAY);
BufferedImage retImage = c.getBufferedImage();
return retImage;
}
Mam problem z wykorzystaniem odpowiednika metody CvtColor, która zadziała z obiektami Mat.
Będę wdzięczny za podpowiedź.