Файл, созданный с помощью imwrite, не отображается - PullRequest
1 голос
/ 11 августа 2011

Новичок в Matlab, извините, если это глупый вопрос. Я фильтрую серию изображений для моего исследования. У меня нет проблем с реальной обработкой изображений, но когда я сохраняю измененные изображения, у меня возникают проблемы. По какой-то причине я могу сохранить только измененные изображения, используя imwrite как файлы .gif. Если я попытаюсь сохранить их как .jpg, .bmp и т. Д., Файл не появится в рабочей папке. Соответствующий универсальный файл появляется, но фактический .jpg нет. Кроме того, когда я использую imread, чтобы снова открыть промежуточные файлы (которые на самом деле сохраняются в формате .gif), изображение просто черное. Но если я открою файл .gif за пределами Matlab, он появится, как и ожидалось. Код ниже.

close all
N=90;
IMAGES=cell(1,N); %creates a cell to store image data
FNAMEFMT='20110805115033(1)_%d.jpg';

for i=1:N
    IMAGES{i}=imread(sprintf(FNAMEFMT,i)); %reads original images into IMAGES
end

RESULT=cell(1,N); %to store modified/filtered images

for i=1:N
    gray=rgb2gray(IMAGES{i}); %converts to grayscale
    binary=im2bw(gray,.5); %converts to bw
    filter=bwareaopen(binary,35); %removes small features
    RESULT{i}=filter; %saves modified image in RESULTS
end

for i=1:N
    WRITEFMT='filter_%d';
    imwrite(RESULT{i},sprintf(WRITEFMT,i),'gif'); %writes RESULTS as .gif
end

1 Ответ

0 голосов
/ 11 августа 2011

Если я попытаюсь сохранить их как .jpg, .bmp и т. Д., Файл не появится в рабочей папке.

Вам нужно изменить

WRITEFMT='filter_%d';

до

WRITEFMT='filter_%d.jpg';

Файлы, которые вы выводите, являются файлами jpeg (согласно аргументу imwrite 'jpg' вместо 'gif' ), но они не имеют расширения файла. Если вы добавите расширение вручную, оно откроется как jpgs.

Для черного gif, посмотрите, поможет ли это .

После экспорта в формате jpg их просмотр работает

imshow(imread('filter_1.jpg'))
...