带JavaCV的cvResize函数
说我用错了。img和image都是iplImages,我应该使用哪种类型以及如何使用它?谢谢带JavaCV的cvResize函数,java,opencv,javacv,iplimage,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"
IplImage image = IplImage.create(120, 120, IPL_DEPTH_8U, 4);
//resize the image
cvResize(img,image);
cvSaveImage("4-rjb" + capture + ".pgm", img);
您应该使用与源图像中相同数量的通道将IPL_DEPTH_8U参数替换为img.nChannels()这应该有效
IplImage image = IplImage.create(120, 120, IPL_DEPTH_8U, 4);
//resize the image
cvResize(img,image);
cvSaveImage("4-rjb" + capture + ".pgm", img);
IplImage resizeImage = IplImage.create(120, 120, origImg.depth(), origImg.nChannels());
这里有一个完整的例子
IplImage image = IplImage.create(120, 120, IPL_DEPTH_8U, 4);
//resize the image
cvResize(img,image);
cvSaveImage("4-rjb" + capture + ".pgm", img);
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");
}