2016-05-03 148 views
4

我想使用opencv的imwrite保存圖像,而不需要任何擴展名。我知道cv2.imwrite中的圖像格式是基於filename擴展名選擇的。有沒有辦法在調用函數時指定壓縮格式,或者我必須在創建後重命名文件?OpenCV - 在將圖像寫入文件時指定格式(cv2.imwrite)

cv2.imwrite(filename, img) 
[Out]: /home/travis/miniconda/conda-bld/work/opencv-3.1.0/modules/imgcodecs/src/loadsave.cpp:459: error: (-2) could not find a writer for the specified extension in function imwrite_ 

回答

0

您可以將fileName字符串連接到只在調用函數時指定擴展名的字符串。

+1

如'cv2.imwrite(文件名+'.jpg',img)'?圖片仍然會保存爲'filename.jpg'?我將不得不重新命名它? – kampta

+0

你不能通過重命名文件將圖像從一個擴展名轉換爲另一個圖像,你必須在調用cv2.imwrite函數時選擇是否選擇擴展名,或者這樣做: img = cv.imread('1.png') cv.imwrite('01.jpg',img)爲例 – Meshredded

+1

我不想轉換圖像擴展/壓縮格式。我想要一個沒有任何擴展名的圖像文件名,並且想要在將圖像寫入磁盤時指定壓縮格式 – kampta

1

我認爲不可能指定壓縮圖像,同時保存圖像而不擴展。我會建議保存擴展名,然後使用os.rename()

import os 
import cv2 

filename = "image.jpg" 
img = ... 

cv2.imwrite(filename, img) 
os.rename(filename, filename[:-4]) 

希望這有助於!

相關問題