我正在尝试编写一个将索引图像作为输入的函数,并将用符号或字符替换所有像素。
图像的价值超过1000字:这是所需的外观输出。每个符号代表图像的唯一颜色值。
我的问题是我不知道如何在屏幕上打印正确位置的符号。我的第一个方法是使用" Wingdings"字体并在文本上放置文本,但不能按预期工作。文本在缩放时会改变大小,并且不会与绘图的其余部分相对应。
我在这里留下一小段代码,创建一个小网格并使用示例图像。
function drawChars (img)
if nargin==0
load mandrill
img=X(1:4:end,1:4:end);
end
chars=randperm(numel(unique(img)));
[h,w]=size(img);
% Form a grid
figure
hold on
for ii=0:h
plot([ii ii],[0 w],'k');
end
for ii=0:w
plot([0 h],[ii ii],'k');
end
axis equal;
axis([0 h 0 w])
%% This does not work as expected
for ii=1:h
for jj=1:w
text(ii, jj, char(chars(img(ii,jj))), 'fontname', 'Wingdings', 'fontsize',10);
end
end
end
简短的问题:您将采用什么方法来解决问题?
注意:chars的选择也存在问题,但暂时忽略它(如果char {被选中不能很好地工作)
答案 0 :(得分:0)
将figure
更改为f=figure
r=size(img).*16;
set(f,'paperunits','points')
set(f,'papersize',r)
set(f,'paperposition',[0 0 r]);
print(f,'example.png','-dpng');
将创建的图形打印到足够大小的png。