1、05-1第五讲第五讲 MATLAB 可视化可视化 (三三 )图像显示图像显示Matlab 进进 行行 图图 像像 处处 理的步理的步 骤骤 如下:读读 取取 图图 像到像到 Matlab 工作空工作空 间间对图对图 像矩像矩 阵进阵进 行格式行格式 转换转换对图对图 像矩像矩 阵阵 数据数据 进进 行行 处处 理理 显显 示示 图图 像像 保存保存 图图 像像【 目录目录 】一、图像文件格式一、图像文件格式 .21、调色板、调色板 .22、图像类型、图像类型 .23、图像文件格式、图像文件格式 .3二、读图像和图像信息二、读图像和图像信息 .31、读取图像、读取图像 .32、读取图像信息、读取
2、图像信息 .4三、图像类别与数据格式三、图像类别与数据格式 .5四、图像显示四、图像显示 .71、 imshow(I,n).72、 imshow(I,low,high).83、 imshow(BW).94、 imshow(X,MAP).125、 imshow(RGB).136、 imshow filename.147、 subimage.14五、保存图像五、保存图像 .151、 imwrite 函数函数 .15六、图像数据格式转换六、图像数据格式转换 .161、索引图像、索引图像 .1605-22、灰度图像、灰度图像 .163、真彩色图像、真彩色图像 .174、二值图像、二值图像 .17【 正
3、文正文 】一、图像文件格式一、图像文件格式1、调色板、调色板调调 色板是包含不同色板是包含不同 颜颜 色的色的 颜颜 色表,每种 颜颜 色以色以 红红 、绿绿 、蓝蓝 三种三种 颜颜 色的色的 组组合来表示, 图图 像的每一个像素像的每一个像素 对应对应 一个数字,而一个数字,而 该该 数字数字 对应调对应调 色板中的一种色板中的一种颜颜 色。调调 色板的色板的 单单 元个数是与元个数是与 图图 像的像的 颜颜 色数相色数相 对应对应 的, 256 色色 图图 像的像的 调调 色板就色板就有有 256 个个 单单 元。真彩真彩 图图 像的每个像素直接用像的每个像素直接用 R、G、B 三个字三个
4、字 节节 来表示来表示 颜颜 色,因此不需要色,因此不需要调调 色板。2、图像类型、图像类型图像类型图像类型 简称简称 显示的颜色数显示的颜色数 特特 点点1 位位 单单 色色 单单 色色 21=2 种(黑、白) 每象素每象素 对应对应 一个一个 值值 ,取 值为值为 0和和 18 位灰度位灰度 黑白黑白 28=256 个个 (黑到白黑到白 ) 每象素每象素 对应对应 一个一个 值值 ,取 值为值为0 255,每 值对应值对应 一灰度一灰度8 位彩色位彩色 256 色色 28=256 种彩色种彩色 每象素每象素 对应对应 一个一个 值值 ,取 值为值为0 255,每 值对应值对应 一一 颜颜
5、色色16 位灰度位灰度 216=65536 个个 (黑到白黑到白 ) 每象素每象素 对应对应 一个一个 值值 ,取 值为值为0 65535,每 值对应值对应 一灰度一灰度24 位彩色位彩色 真彩色真彩色 282828=16M 种彩色种彩色 每象素每象素 对应对应 三个三个 值值 ,分 别别 代表代表R、G、B,取 值为值为 0 25548 位彩色位彩色 216216216=0.25G 种种色色每象素每象素 对应对应 三个三个 值值 ,分 别别 代表代表R、G、B,取 值为值为 0 6553505-33、图像文件格式、图像文件格式文件文件类型类型说明说明 1 位位单色单色8 位位灰度灰度8 位位
6、彩色彩色16 位位灰度灰度24 位位彩色彩色48 位位彩色彩色BMP 微微 软视软视 窗系窗系 统图统图 像文件格式像文件格式 GIF 用于网用于网 页页 上的上的 动动 画、透明 TIFF 可可 储储 存多幅存多幅 图图 像像 PCX Paintbrush 软软 件件 图图 像格式像格式 JPG 连续连续 色色 调调 静静 态图态图 像数字像数字 压缩压缩 PSD Photoshop 软软 件件 图图 像格式像格式 二、读图像和图像信息二、读图像和图像信息1、读取图像、读取图像函数函数 imread 可以从任何可以从任何 Matlab 支持的支持的 图图 像文件格式中,以任意位深度像文件格式
7、中,以任意位深度读读 取一幅取一幅 图图 像。格式 为为 :X,MAP=imread(FILENAME,FMT),其中:FILENAME 为为 需要需要 读读 入的入的 图图 像文件名称,像文件名称, FMT 为图为图 像格式。【 例例 】 图像读取演示图像读取演示X1,MAP1=imread(演示演示 图图 像像 1 位黑白位黑白 .tif);X2,MAP2=imread(演示演示 图图 像像 8 位灰度位灰度 .tif);05-4X3,MAP3=imread(演示演示 图图 像像 256 色色 .tif);X4,MAP4=imread(演示演示 图图 像像 16 位灰度位灰度 .tif);
8、X5,MAP5=imread(演示演示 图图 像像 24 位色位色 .tif);X6,MAP6=imread(演示演示 图图 像像 48 位色位色 .tif);whos Name Size Bytes ClassMAP1 0x0 0 double arrayMAP2 0x0 0 double arrayMAP3 256x3 6144 double arrayMAP4 0x0 0 double arrayMAP5 0x0 0 double arrayMAP6 0x0 0 double arrayX1 427x427 182329 logical arrayX2 427x427 182329 ui
9、nt8 arrayX3 427x427 182329 uint8 arrayX4 427x427 364658 uint16 arrayX5 427x427x3 546987 uint8 arrayX6 427x427x3 1093974 uint16 arrayGrand total is 1824058 elements using 2558750 bytes 2、读取图像信息、读取图像信息可以通可以通 过调过调 用用 imfinfo 函数函数 获获 得与得与 图图 像文件有关的信息,格式如下:像文件有关的信息,格式如下:INFO=imfinfo(FILENAME,FMT)其中:返回的返回
10、的 INFO 是是 Matlab 的一个的一个 结结 构体。【 例例 】 查看图像信息查看图像信息INFO=imfinfo(演示演示 图图 像像 48 位色位色 .tif) INFO = Filename: 1x36 charFileModDate: 23-May-2004 22:14:23FileSize: 1107548Format: tifFormatVersion: Width: 427Height: 427BitDepth: 48ColorType: truecolorFormatSignature: 73 73 42 0ByteOrder: little-endianNewSubf
11、ileType: 0BitsPerSample: 16 16 1605-5Compression: UncompressedPhotometricInterpretation: RGBStripOffsets: 13528SamplesPerPixel: 3RowsPerStrip: 427StripByteCounts: 1093974XResolution: 2.7115YResolution: 2.7115ResolutionUnit: InchColormap: PlanarConfiguration: ChunkyTileWidth: TileLength: TileOffsets:
12、 TileByteCounts: Orientation: 1FillOrder: 1GrayResponseUnit: 0.0100MaxSampleValue: 65535 65535 65535MinSampleValue: 0Thresholding: 1NewSubFileType: 0Software: Adobe Photoshop 7.0 DateTime: 2004:05:23 22:14:23 三、图像类别与数据格式三、图像类别与数据格式双精度类双精度类 :Double(每个元素占每个元素占 8 个字节个字节 )整数类:整数类: Unit8(每个元素占每个元素占 1 个字节
13、个字节 )整数类(整数类( Unit16)(每个元素占每个元素占 2 个字节个字节 )真真彩彩图图像像数数 组组 大小: mn3(:,:,1) 红红 色分量色分量(:,:,2) 绿绿 色分量色分量(:,:,3) 蓝蓝 色分量色分量元素取元素取 值值 :0,1(无 调调 色板)数数 组组 大小: mn3(:,:,1) 红红 色分量色分量(:,:,2) 绿绿 色分量色分量(:,:,3) 蓝蓝 色分量色分量元素取元素取 值值 :0,255(无 调调 色板)数数 组组 大小: mn3(:,:,1) 红红 色分量色分量(:,:,2) 绿绿 色分量色分量(:,:,3) 蓝蓝 色分量色分量元素取元素取 值值
14、 :0,65535(无 调调 色板)05-6索索引引图图像像图图 像数像数 组组 大小: mn图图 像元素取像元素取 值值 :1,p色度矩色度矩 阵阵 :p3色度元素色度元素 值值 :0,1图图 像数像数 组组 大小: mn图图 像元素取像元素取 值值 :0,p-1色度矩色度矩 阵阵 :p3色度元素色度元素 值值 :0,255图图 像数像数 组组 大小: mn图图 像元素取像元素取 值值 :0,p-1色度矩色度矩 阵阵 :p3色度元素色度元素 值值 :0,65535灰灰度度图图像像图图 像数像数 组组 大小: mn图图 像元素像元素 值值 :0,1色度矩色度矩 阵阵 :p3色度元素色度元素 值
15、值 :0,1图图 像数像数 组组 大小: mn图图 像元素像元素 值值 :0,255色度矩色度矩 阵阵 :p3色度元素色度元素 值值 :0,1图图 像数像数 组组 大小: mn图图 像元素像元素 值值 :0,65535色度矩色度矩 阵阵 :p3色度元素色度元素 值值 :0,105-7二二值值图图像像图图 像数像数 组组 大小: mn图图 像元素像元素 值值 :0 或或 1图图 像数像数 组组 大小: mn图图 像元素像元素 值值 :0 或或 1四、图像显示四、图像显示Matlab 的的 图图 像像 显显 示函数主要有示函数主要有 imshow、colorbar 和和 subimage 三个。1
16、、 imshow(I,n)显显 示灰度示灰度 级为级为 n 的的 图图 像, n 缺省缺省 为为 256。【 例例 】 按按 256 灰度级显示灰度级显示I=imread(moon.tif);imshow(I,256)colorbar 05-8050100150200250【 例例 】 按按 8 灰度级显示灰度级显示I=imread(moon.tif);imshow(I,8)colorbar 0501001502002502、 imshow(I,low,high)以灰度范以灰度范 围围 low,high显显 示示 图图 像,如果不知道灰度范像,如果不知道灰度范 围围 ,可以用imshow(I,
17、)显显 示。【 例例 】 按最大灰度范围显示按最大灰度范围显示I=imread(moon.tif);imshow(I,)colorbar 05-9050100150200250【 例例 】 按指定灰度范围显示按指定灰度范围显示I=imread(moon.tif);imshow(I,64,128)colorbar 7080901001101203、 imshow(BW)显显 示二示二 值图值图 像。【 例例 】 双精度灰度图像双精度灰度图像bw1=zeros(100,100);bw1(2:2:98,2:2:98)=1;imshow(bw1);whos bw1 Name Size Bytes Cl
18、assbw1 100x100 80000 double array05-10Grand total is 10000 elements using 80000 bytes【 例例 】8 位的灰度图像位的灰度图像bw1=zeros(100,100);bw1(2:2:98,2:2:98)=1;bw2=uint8(bw1);imshow(bw2,);colorbarwhos bw2 Name Size Bytes Classbw2 100x100 10000 uint8 arrayGrand total is 10000 elements using 10000 bytes00.10.20.30.40.50.60.70.80.91【 例例 】 二值图像二值图像bw1=zeros(100,100);bw1(2:2:98,2:2:98)=1;bw2=uint8(bw1);