MATLAB - запишите изображение в eps файл

В MATLAB, как Вы пишете матрицу в изображение формата EPS?

Это кажется imwrite не поддерживает EPS.

Преобразование не работает над сервером Linux, который я использую:

$ convert exploss_stumps.jpg exploss_stumps.eps
convert: missing an image filename `exploss_stumps.eps' @ convert.c/ConvertImageCommand/2838

Почему?


Я попробовал идею gnovice под терминальным режимом:

    figH = figure('visible','off') ;
imshow(img,'border','tight',...      %# Display in a figure window without
        'InitialMagnification',100);  %#    a border at full magnification
print(strcat(filepath,'/', dataset,'_feature_',num2str(j), '.eps'),'-depsc2');
    close(figH) ;

Однако я добрался:

??? Ошибочное использование ==> imshow в 191
IMSHOW требует, чтобы Java работал.

Ошибка в ==> study_weaker в 122
imshow (img, 'граница', 'трудная'... % # Дисплей в окне числа без

191 ошибка (eid', %s требует, чтобы Java работал. ', верхний (mfilename));

Как я могу зафиксировать его?

7
задан Peter Mortensen 30 August 2012 в 16:14
поделиться

2 ответа

Одно из возможных решений - построить изображение, используя IMSHOW , а затем распечатать весь рисунок в формате .eps, используя PRINT :

img = imread('peppers.png');         %# A sample image
imshow(img,'Border','tight',...      %# Display in a figure window without
       'InitialMagnification',100);  %#    a border at full magnification
print('new_image.eps','-deps');      %# Print the figure as a B&W eps

Одним из недостатков этого решения является то, что если изображение слишком велико, чтобы поместиться на экране, IMSHOW сожмет его до размеров, что снизит разрешение изображения на экране. Однако вы можете настроить окончательное разрешение сохраненного изображения с помощью параметра -r <число> для функции ПЕЧАТЬ .Например, вы можете распечатать свою фигуру в виде инкапсулированного цветного PostScript уровня 2 с разрешением 300 dpi, выполнив следующие действия:

print('new_image.eps','-depsc2','-r300');

РЕДАКТИРОВАТЬ: Если вы не можете использовать IMSHOW (либо потому, что у вас нет Image Processing Toolbox или потому что вы используете режим MATLAB, который не позволяет этого), вот альтернативный способ создать и распечатать фигуру:

img = imread('peppers.png');      %# A sample image
imagesc(img);                     %# Plot the image
set(gca,'Units','normalized',...  %# Set some axes properties
        'Position',[0 0 1 1],...
        'Visible','off');
set(gcf,'Units','pixels',...      %# Set some figure properties
        'Position',[100 100 size(img,2) size(img,1)]);
print(gcf,'new_image.eps','-depsc2','-r300');  %# Print the figure

Вы также можете взять посмотрите эту документацию , чтобы увидеть, как работает печать без дисплея.

7
ответ дан 7 December 2019 в 07:43
поделиться

Он должен работать с использованием imwrite. Однако вам нужно будет добавить цветовую карту, чтобы она работала.

Однако, просматривая страницы справки, я вижу, что нельзя использовать imwrite для записи файла EPS.

0
ответ дан 7 December 2019 в 07:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: