如何避免MATLAB中的锯齿状图像?
我在MATLAB中打开了一个600 x 600像素的图像,并对图像进行了一些处理。然而,当我保存它时,它看起来如此模糊和锯齿状。我该怎么办?
(此问题与我之前提出的问题相关, MATLAB - How to plot x,y on an image and save? )
fid = fopen(datafile.txt);
A = textscan(fid,'%f%f%f'); %read data from the file
code = A{1};
xfix = A{2};
yfix = A{3};
for k=1:length(code)
imagefile=code(k);
rgb = imread([num2str(imagefile) '.jpg']);
imshow(rgb);
hold on;
x = xfix2(k);
y = yfix2(k);
plot(x,y,'-+ b'); % plot x,y on the
saveas(([num2str(imagefile) '.jpg'])) % Save the image with the same name as it open.
end
hold off
答案 0 :(得分:0)
如果只是一个分辨率问题,可能使用带有显式分辨率选项的print命令(如下所示)可能会修复它。
print(gcf,'-djpeg','-r600',[num2str(imagefile)])
答案 1 :(得分:0)
我的猜测是JPEG压缩工件。对于具有大量高频分量的数据,JPEG不是一种很好的格式。你试过压缩吗?像这样:
imwrite(f.cdata,([num2str(imagefile) '.jpg']),'Quality',100);
质量参数的默认值仅为75.对于很多情况来说这很多,但您可能需要更多。