在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 at 122
imshow(img,'border','tight',...%#在数字窗口中显示没有
191错误(eid,'%s需要Java运行。',upper(mfilename));
我该如何解决?
答案 0 :(得分:7)
一种可能的解决方案是使用IMSHOW绘制图像,然后使用PRINT将整个图形打印为.eps:
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调整保存图像的最终分辨率。例如,您可以通过执行以下操作将图形打印为分辨率为2 dpi的Encapsulated Level 2 Color 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 :(得分:0)
它应该使用imwrite。你必须为它添加一个色彩图才能工作。
然而,在查看帮助页面时,我发现不可能使用imwrite来编写EPS文件。
答案 2 :(得分: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