linux下matlab保存contour图像有偏移,请问是怎么回事

下面的函数是我用来保存在img上画了contour的图像,但我在linux系统下运行后,发
现保存的图像不正确,有一部分没有,但另外多出了一部分空白的,请问是怎么回事?是那个命令出错了呢?
function saveimage(img, con, ix, iy, name)
%img 图像
%con:img的lable矩阵,用来标记img分类后的类别
%ix, iy 图像的长和宽
%name 图像保存后的名字
mask=zeros(ix,iy);
fig = figure('Visible', 'off');
imshow(uint8(mask),'border','tight','initialmagnification','fit');hold on;
if ~isempty(con)
contour(con,'color','r', 'LineWidth', 1);axis ij
end

% Sets position and size of figure on the screen
set(fig, 'Units', 'pixels', 'position', [100 100 iy ix] );

% Sets axes to fill the figure space
set(gca, 'Units', 'pixels', 'position', [0 0 iy+1 ix+1 ]);

% Sets print properties; Looks like 1 pixel = (3/4)th of a point
set(fig, 'paperunits', 'points', 'papersize', [fix((iy-1)*(3/4))+1 fix((ix-1)*(3/4))+1]);
set(fig, 'paperunits', 'normalized', 'paperposition', [0 0 1 1]);

print( fig, sprintf('-r%d', ceil(72*(4/3))), '-dpng', name );

close(fig);

end

我在windows下遇见过类似错误,我认为是计算机分辨的问题,保存格式jpeg,这个格式比较好,其他格式容易出错,保存时先把图片放大再保存,如果缩小状态保存,很容易出问题追问

“保存时先把图片放大再保存”,请问这是什么意思啊,能不能告知具体实现方法?还有存成jpeg格式就不会出现这种问题了吗?谢谢

追答

图片不是有放大么,放大后到导出成图片,一定保存成 图片格式,保存完你看看

温馨提示:内容为网友见解,仅供参考
无其他回答

linux下matlab保存contour图像有偏移,请问是怎么回事
我在windows下遇见过类似错误,我认为是计算机分辨的问题,保存格式jpeg,这个格式比较好,其他格式容易出错,保存时先把图片放大再保存,如果缩小状态保存,很容易出问题

matlab这个contour图怎么缺了一块?(新手~)
这样在-0.05~0.05,0~0.1之间只有一个或两个值,没办法作图吧。以上的原因我不是很确定,因为不太了解contour图。不过我建议你吧作图改密集一点,比如:[x,y] = meshgrid(-2:.05:2,1:-0.01:0)试一下

matlab如何使用contour plot这个东西?还有想画有向量的图要怎么画...
contour(x,y,z), hold on quiver(x,y,px,py), hold off, axis image

matlab中,如何在用contour绘制等高线后在同一图像界面中输入二维图形...
contour(xx,yy,zz,10);hold on plot(x,x+1,'k');hold off

MATLAB画图工具中坐标外面的底色是灰的,该如修改?
set(gcf,'color',[1,1,1])

matlab怎么用
exit 关闭MATLAB exp 指数 expand 对指定项展开 expm 矩阵指数 eye 单位阵 ezcontour 画等位线 ezcontourf 画填色等位线 ezmesh 画网线图 ezmeshc 画带等位线的网线图 ezplot 绘制符号表达式的二维图形 ezplot3 画三维曲线 ezpolar 画极坐标曲线 ezsurf 画曲面图 ezsurfc 画带等位线的曲面图 F f factor 进行因式...

matlab大神帮忙解答一下这个证明不等式的问题!!
用matlab验证柯西不等式,可以取若干个随机数赋值给a(i)和b(i),,然后计算左式X1和右式X2,最后判断X1<=X2是否成立。a=unifrnd(1,100,1,100);b=unifrnd(101,200,1,100);X1=sum(a.*b);X2=sqrt(sum(a.^2)).*sqrt(sum(b.^2));if X1<=X2 X1,X2 disp('Σai*bi≤(Σai^2...

matlab画函数图像怎么分析格图比重
图像轮廓图 在灰度图的轮廓图显示时,可利用MATLAB影像处理工具箱中的imcontour函数。该函数类似于contour函数,与contour函数相比,其功能更全。它能够自动设置坐标轴对象,从而使得其方向和纵横比能够与所显示的图形相匹配。 例:I=imread('rice.tif');imshow(I);figure;imcontour(I)I=imread('rice.png');imshow(I...

怎样将matlab图像里面的x,y坐标轴的数据输出
MATLAB还有一个peaks 函数,称为多峰函数,常用于三维曲面的演示。 11.其他三维图形 条形图、饼图和填充图等特殊图形,它们还可以以三维形式出现,使用的函数分别是bar3、pie3和fill3。此外,还有三维曲面的等高线图。等高线图分二维和三维两种形式,分别使用函数contour和contour3绘制。 展开 qq252923004 | 发布于2008...

MATLAB运行只出坐标轴没有图像,在命令窗口输入c4fun4_8(0.5)
运行你的代码,有一个错误而导致无法出图,即应该用逗号却用了冒号。错误就在这个命令中 [x,y]=meshgrid(xmin:dx:xmax “: ” ymin:dy:ymax),双引号中的那个符号(:)错了,应该为逗号(,)。正确的写法为 [x,y]=meshgrid(xmin:dx:xmax , ymin:dy:ymax)更正后可以得到其图形。

相似回答
大家正在搜