使用JavaCV的cvResize函数

时间:2013-04-05 16:50:32

标签: java opencv javacv iplimage

说我在这里使用了错误的类型。 img和image都是iplImages,我应该使用什么类型以及如何使用它?谢谢

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

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

3 个答案:

答案 0 :(得分: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");
}

答案 1 :(得分:1)

您应使用与源图像中相同数量的频道

答案 2 :(得分:1)

用img.nChannels()

替换IPL_DEPTH_8U参数