2012-04-01 104 views
0

可能重複:
Cant save image using OpenCV保存視頻的幀時不保存任何圖像..

我曾嘗試下面的代碼,請看到這一點,告訴我,我怎麼wrong.but沒有編譯錯誤。在我運行該程序後,它不保存任何圖像。

#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; 
} 

你能告訴我如何保存圖像。以上程序不保存任何images.please給我你的suggestions.thank你。

回答

1
IplImage *destination = cvCreateImage(cvSize(img->width, img->height), IPL_DEPTH_8U,1); 
cvCvtColor(img, destination, CV_RGB2GRAY); 
cvSaveImage("C:/Users/SP/Desktop/sample.jpg", destination); 

它轉換成灰色圖像;根據需要使用它。

希望這個工程。

0

可能是一個權限問題,只有管理員可以寫信給頂層文件夾

試着做一個子目錄和寫入例如sprintf(buffer,"D:/data/image%u.jpg",c);

0

我會說這在這些崗位OpenCV的第100次:通過檢查呼叫的返回來安全地編碼cvSaveImage()返回0失敗時保存圖像:

if (!(cvSaveImage(buffer,img)) 
{ 
    std::cout << "!!! Failed to save image" << std::endl; 
} 

如果你看到正在顯示的錯誤消息,您應該檢查目標目錄是否存在,如果你的用戶有授權裏面創建文件。

+0

這works..i感謝你們爲給我你的suggestions.Thank你了。 – NimPointer 2012-04-02 13:30:34