ビデオファイルから画像を保存しようとしましたが、ハードディスクに画像を保存できませんでした。次のプログラムを間違いなくコンパイルしました。OpenCVを使用して画像を保存する
#include <stdio.h>
#include <stdlib.h>
#include <cv.h>
#include <cxcore.h>
#include <highgui.h>
int main(int argc, char* argv[]) {
int c=1;
IplImage* img=0;
IplImage* small;
IplImage* small=new IplImage(inputArray);
char buffer[1000];
CvCapture* cv_cap=cvCaptureFromFile("test.avi");
cvNamedWindow("Video",CV_WINDOW_AUTOSIZE);
while(1) {
img=cvQueryFrame(cv_cap);
cvShowImage("Video",img);
small = cvCreateImage(cvSize(img->width/2,img->height/2), 8, 3);
sprintf(buffer,"C:/image%u.jpg",c);
c++;
if (cvWaitKey(100)== 27) break;
}
cvDestroyWindow("Video");
return 0;
}
私はビデオファイルから画像を保存することができますどのように2010年 2.3.1 OpenCVのライブラリおよびVisual Studioを使用していますか?
私はまた、プログラムコードの上に、このコードを試してみましたが、次のプログラムcode.After私は次のコードを追加すると、また同じ問題があった参照wrong.please何かです。
cvSaveImage(buffer,img);
修正したプログラムは、これを見て、私はそれが任意の画像を保存していないプログラムを実行しerror.afterをコンパイルがないwrong.but私が何をしたかを教えてbelow.please示されています。
#include"stdafx.h"
#include<cv.h>
#include<highgui.h>
#include<cxcore.h>
int main(int argc, char* argv[]) {
int c=1;
IplImage* img=0;
char buffer[1000];
CvCapture* cv_cap=cvCaptureFromCAM(-1);
cvNamedWindow("Video",CV_WINDOW_AUTOSIZE);
while(1) {
img=cvQueryFrame(cv_cap);
cvShowImage("Video",img);
sprintf(buffer,"D:/image%u.jpg",c);
cvSaveImage(buffer,img);
c++;
if (cvWaitKey(100)== 27) break;
}
cvDestroyWindow("Video");
return 0;
}
あなたはどのようにイメージ.aboveプログラムを保存することは私にあなたがあなたのsuggestions.thankを与える任意のimages.pleaseを保存していない私に言うことができます。
ながら画像を保存するために、ここで
は例 - のですか?あなたがファイル名を含む 'buffer'で何もしないように見えます。 – WeaselFox
また、C++を使用している場合はなぜ旧Cインターフェイスを使用するのですか? – etarion
画像の保存時に[画像を保存しません]の複製が可能です。(http://stackoverflow.com/questions/9966600/doesnt-save-any-image-when-saving-frames-of-a -video) – karlphillip