2010-03-19 75 views
6

在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 at 191
IMSHOW需要運行Java。

在==錯誤> study_weaker在122
imshow(IMG, '邊界', '緊',...%#在圖窗口顯示而不

191錯誤(EID,「%s需要Java的運行',上(mfilename));

我該如何解決

+0

使用SciPy試試相同的東西嗎?首先保存到文本,然後使用漸近線或轉換unix命令? – 2010-03-19 15:55:53

+0

謝謝!轉換工作不正常。 – Tim 2010-03-19 16:04:45

+0

還要注意,你也可以用Java以「終端」模式運行。只需用「-nodesktop」標誌而不是「-nojava」標誌啓動MATLAB。 – 2010-12-03 16:45:24

回答

6

一個可能的解決方案是使用繪製您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<number> option for the PRINT function調整保存的圖像的最終分辨率。例如,您可以通過使用300 dpi的分辨率打印您的數字作爲一個封裝的2級彩色PostScript如下:

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 

您還可以看看this documentation怎麼看打印作品沒有顯示。

+1

爲了避免更改分辨率,您可能會得到矩陣大小並以像素爲單位指定軸大小。 – yuk 2010-03-19 16:15:01

+0

更好使它'-depsc2' – AVB 2010-03-19 16:20:07

+0

@AB:這個選項取決於他們想要/需要什麼類型的.eps文件的OP。 – gnovice 2010-03-19 16:26:12

0

它應該使用imwrite工作。你將不得不添加一個色彩映射爲它工作。

但是,ckecking的幫助頁面,我看到它不可能使用imwrite寫入EPS文件。

+0

例如,請問? – Tim 2010-03-19 16:14:29

0

以下代碼可能幫助您將PNG文件轉換爲eps。

fileName = 'FarmerStats'; % your FILE NAME as string 

A = imread(fileName,'png'); 
set(gcf,'visible','off') %suppress figure 
image(A);     
axis image    % resolution based on image 
axis off     % avoid printing axis 
set(gca,'LooseInset',get(gca,'TightInset')); % removing extra white space in figure 
saveas(gcf,fileName,'epsc'); % save as COLOR eps file