2014-07-08 22 views
0
#include <opencv/cv.h> 
#include <opencv/highgui.h> 

using namespace cv; 

int main(int argc, char** argv) 
{ 
const char* imageName = "samp.png"; 

Mat image; 
image = imread(imageName, 1); 


Mat gray_image; 
cvtColor(image, gray_image, CV_BGR2GRAY); 

imwrite("/home/Downloads/Pictures/Gray_Image.jpg",gray_image); 



namedWindow(imageName, CV_WINDOW_AUTOSIZE); 
namedWindow("Gray image", CV_WINDOW_AUTOSIZE); 



imshow(imageName, image); 
imshow("Gray image", gray_image); 

waitKey(0); 

return 0; 
} 

「imwrite」不會產生其他image.Everything工作正常,我可以使用imshow.But圖像我不知道它爲什麼不建立一個image.I見嘗試'convertTo'並將'/'替換爲路徑中的'\',但它不起作用。如果我得到任何鉛,我會很高興。謝謝!imwrite沒有在上面的代碼中創建圖像

+1

你的路徑:「/home/.../.../Gray_Image.jpg」看起來很模糊。首先,沒有'/.../'這樣的東西你是指'/../'嗎?然後,'/ home'已經是頂級文件夾了,你不能從那裏上去2次 – berak

+0

我只是想說一些目錄在它們之間,例如:「/ home/Downloads/Pictures/Gray-Image .jpg「對不起,含糊不清! –

回答

3

這沒有明確記錄,但imwrite返回布爾值這是true當且僅當它認爲它可以寫入文件成功。您應該檢查該值!

您可能會發現,imwrite r eturns false。很可能你沒有足夠的權限,或者像berak指出的那樣 - 你的文件路徑是無效的。順便說一下,爲了正確的錯誤處理,您還應該捕獲異常,尤其是在用戶提供輸出文件URL時。如果OpenCV出於某種原因無法找到合適的編碼器(即無法識別您將要寫入的文件類型),則會引發異常。

相關問題