2016-05-03 3 views
4

Я хочу сохранить изображение с помощью opencv's 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 (filename + '.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]) 

Надеется, что это помогает!

Смежные вопросы