问题
我有一个散点图,想投影到灰度图显示出来,结果imshow()出来图是倒的
代码如下:
x = linspace(0,3*pi,200);
y = cos(x) + rand(1,200);
figure;scatter(x,y);pic=zeros(150,200);
[x_nml,PSX] = mapminmax(x,1,200) ;
x_nml_rnd=round(x_nml);
[y_nml,PSX] = mapminmax(y,1,150) ;
y_nml_rnd=round(y_nml);for m=1:200pic(y_nml_rnd(1,m),x_nml_rnd(1,m))=1;end
figure;imshow(pic);
原因
因为灰度图的数据是数组形式,而数组的第一行第一列在左上角,坐标的原点在左下角,故造成这种差异,如下:将数组第一行第一列置1,画出来的图最上一行和最左一行为白
>> pic=zeros(3,3);
>> pic(1,:)=[1,1,1];
>> pic(:,1)=[1;1;1];
>> picpic =1 1 11 0 01 0 0>> imshow(pic)