imshow和image两个显示函数的区别

来源:互联网 发布:女仆装淘宝网 编辑:程序博客网 时间:2024/06/14 18:56

对于imshow和image两个显示函数来说:

        image显示出来是有坐标框的,可以看到像素的大小,可以显示double型图像

        imshow只是显示图像,不可以显示double型图像

      还有一点就是image要将图像按坐标轴的大小来显示(无论axes或者figure都会有坐标轴的),要将坐标轴平面铺满,而不管原图片的大小和比例是多少,因为image是将图片作为一个数组来呢显示的,这样就极有可能造成图像的失真。而imshow则是按照原图像的像素大小比例来显示的,显示的是就是原图片,而且不会有坐标轴,对于希望尽可能保留原图片的信息情况,应尽量使用imshow。

      它们都可以用subplot来定位图像显示的位置,用colormap来定义图像显示用的颜色查找表,比如用colormap(pink),可以把黑白图像显示成带粉红色的图像,很有趣的。
      在这里最值得注意的是要显示的图像像素矩阵的数据类型。显示真彩色图像像素三维矩阵X,如果是uint8类型,要求矩阵的数据范围为0-255,如果是double型,则其数据范围为0-1,要不就会出错或者出现空白页。
       例子如下:

I = imread('tiantan.jpg');I=rgb2gray(I);%真彩色图像一定要进行灰度变换J = double(I);figure;subplot(2, 2, 1); imshow(I); title('origin uint8');subplot(2, 2, 2); imshow(J); title('imshow double');subplot(2, 2, 3); image(I); title('image uint8');subplot(2, 2, 4); image(J); title('image double');figure; imshow(J, []); title('imshow double []');


0 0