2013-04-05 2 views
3

Говорит, что я использую неправильные типы здесь. И img, и изображение - это iplImages, какой тип я должен использовать и как его использовать? БлагодаряФункция cvResize с JavaCV

    IplImage image = IplImage.create(120, 120, IPL_DEPTH_8U, 4); 
        //resize the image 
        cvResize(img,image); 

        cvSaveImage("4-rjb" + capture + ".pgm", img); 

ответ

1

вы должны использовать такое же количество каналов, как в исходном изображении

2

это должно работать

IplImage resizeImage = IplImage.create(120, 120, origImg.depth(), origImg.nChannels()); 

и здесь полный пример

OpenCVFrameGrabber frameGrabber = new OpenCVFrameGrabber(video_in); 
try { 
    frameGrabber.start(); 
    IplImage origImg = frameGrabber.grab(); 
    IplImage resizedImage = IplImage.create(IMG_WIDTH, IMG_HEIGHT, origImg.depth(), origImg.nChannels()); 

    //cvSmooth(origImg, origImg); 
    cvResize(origImg, resizedImage); 
    cvSaveImage(image_out.getAbsolutePath(),resizedImage); 
    cvReleaseImage(resizedImage); 

} catch (OpenCVFrameGrabber.Exception e) { 
    e.printStackTrace(); 
    throw new NullPointerException("fileExtension"); 
}