如图所示,这个坐标原点0 怎么放在左下角啊,我这是只显示了 x 轴标签的0 的结果。
如图所示,论文里面的是放在左下角的
如图所示,这个坐标原点0 怎么放在左下角啊,我这是只显示了 x 轴标签的0 的结果。
坐标系平移:
设图像宽度为W,高度为H,通过坐标系原点之间的位置关系,我们不难发现,由坐标系Ⅰ平移到Ⅱ的变换矩阵为:
而其逆矩阵为:
而我们得到图像平移的设计思路如下:
- 将像素所在的图像坐标系转换为笛卡尔坐标系。
- 将笛卡尔坐标系下的像素进行平移变换。
- 将像素所在的笛卡尔坐标系转换为图像坐标系。
coordination_shift=[1 0 -0.5*w;0 -1 0.5*h;0 0 1];%坐标系转换转换矩阵 rotation=[cos(a) -sin(a) 0; sin(a) cos(a) 0;0 0 1];%旋转矩阵 shift_back=[1 0 0.5*w_new;0 -1 0.5*h_new; 0 0 1];%还原坐标系矩阵 for y=1:h for x=1:w xy_position=coordination_shift*[x;y;1];%将像素所在的图像坐标系转换为笛卡尔坐标系。 xy_rotation=rotation*xy_position;%将笛卡尔坐标系下的像素进行平移变换。 xy_new=round(shift_back*xy_rotation);%将像素所在的笛卡尔坐标系转换为图像坐标系。 img_new(xy_new(2),xy_new(1),:)=img(y,x,:); end end end subplot(2,2,3),imshow(uint8(img_new));
通过如上的算法及代码实现,我们可以得到基于图像平移算法的实现操作。
问题回答:
在Matlab中绘图时,可以通过设置坐标系方向来实现将坐标原点(0,0)放在左下角。具体步骤如下:
1. 设置坐标系方向为正常方向:set(gca,'YDir','normal')
2. 调整标签位置:xlabel('x')
, ylabel('y')
3. 调整坐标范围:xlim([xmin,xmax])
, ylim([ymin,ymax])
示例代码如下:
x = linspace(-5,5,100);
y = x.^2;
plot(x,y)
set(gca,'YDir','normal')
xlabel('x')
ylabel('y')
xlim([-5,5])
ylim([0,30])
效果展示: