Matlab中设置xlim后图像显示范围未改变的问题求助
问题原因
你的代码里axis image命令会自动覆盖之前设置的xlim,因为它的作用是强制坐标轴范围匹配图像的完整尺寸,同时保持像素的宽高比一致,所以你先设的xlim会被它冲掉。
解决方法
方法1:调整命令顺序
把xlim放在axis image之后执行,这样轴范围设置不会被覆盖:
I = imread("pout.tif"); figure(54) sz=size(I); disp(sz) xv=1:sz(1); yv=1:sz(2); imagesc(xv,yv,I) xlabel('x') ylabel('y') axis image; xlim([50 100]) % 移到axis image之后
方法2:直接裁剪图像(更高效)
如果只需要显示特定区域,直接提取图像的对应部分,不需要调整轴范围,这样更直观:
I = imread("pout.tif"); figure(54) % Matlab图像的列对应x轴,行对应y轴,所以提取x=50到100的区域就是取第50-100列 I_cropped = I(:, 50:100); imagesc(I_cropped) xlabel('x') ylabel('y') axis image;
内容的提问来源于stack exchange,提问作者Conotor
相关产品推荐
相关产品推荐

