《数字图像处理与机器视觉——Visual C++与Matlab实现》——1.5 图像的显示

1.5 图像的显示

数字图像处理与机器视觉——Visual C++与Matlab实现
一般使用imshow函数来显示图像,该函数可以创建一个图像对象,并可以自动设置图像的诸多属性,从而简化编程操作。这里介绍imshow函数的几种常见调用方式。

1.imshow函数
imshow函数用于显示工作区或图像文件中的图像,在显示的同时可控制部分效果(参见例12.6),常用的调用形式为:

imshow(I, [low high], param1, value1, param2, value2, …)
 imshow(I, MAP)
 imshow(filename)

参数说明:

I为要显示的图像矩阵。
可选参数[low high]指定显示灰度图像时的灰度范围,灰度值低于low的像素被显示为黑色,高于high的像素被显示为白色,介于low和high之间的像素被按比例显示为各种等级的灰色。如果用此参数指定为空矩阵[ ],则函数会将图像矩阵中的最小值指定为low、最大值指定为high,从而达到灰度拉伸的显示效果。这个参数常常用于改善灰度图像的显示效果。
可选参数param1、value1、param2、value2等可以用来指定显示图像的特定方法。
MAP为颜色索引表,除了显示索引图像,在显示伪彩色图像时也可用到。
filename参数用于指定图像文件名,这样可以不必将图像文件首先读入工作区。
【例1.6】 图像文件的读取、显示、回写。

% 读取图像文件
>>I = imread('gantrycrane.png');
% 显示图像
>>imshow(I);
% 写回到文件
>>imwrite(I, 'gantrycrane.tif', 'TIFF');

2.多幅图像的显示
有时需要将多幅图像一起显示以比较它们之间的异同,这在考察不同算法对同一幅图像的处理效果时尤为有用。

可以在同一窗口或者不同窗口显示多幅图像,这两种方式的实现如例1.7所示。

【例1.7】 显示多幅图像。

I = imread(‘pout.tif’); % 读取图像

% 在不同窗口显示
figure; %创建一个新的窗口
imshow(I);
figure;
imshow(I, [ ]);
% 在相同窗口显示
figure;
subplot(1, 2,1);
imshow(I);
subplot(1,2,2);
imshow(I, [ ]);

上述程序中figure函数用于新创建一个显示窗口,以避免新图像的显示覆盖原图像;subplot(m,n,p)函数的含义是,打开一个有m行n列图像位置的窗口,并将焦点位于第p个位置上。

icon-info注意:

在多幅索引图像的显示中存在着潜在的问题。由于索引图像使用的颜色表可能不同,而系统的全局颜色表在默认情况下是8位的,最多只能存储256种颜色,如此,如果所有图像的总颜色种类超过256种,则超出的部分将不会被正确显示。所以,通常先使用ind2rgb(I)将图像转换为RGB模式。此外,也可以使用subimage(I,map),这个函数在显示图像之前会自动将其转换为RGB格式。
3.多帧图像的显示
在显示多帧图像时,可以显示多帧中的一帧,或者将它们显示在同一个窗口内,也可以将多帧图像转化成电影播放出来。这3种方式的实现如例1.8所示。

【例1.8】 多幅图像D,存储了一组索引图像,MAP为颜色索引表。分别以上述的3种方式显示它们。

>>load mri %载入Matlab自带的核磁共振图像
>>imshow(D(:,:,7), map); % 显示多幅中的一幅

% 同一窗口显示
>>figure, montage(D, map);

% 转化成为电影
>>figure
>>mov=immovie(D, map);
>>colormap(map); %设定颜色表
>>movie(mov); %播放电影

4.图像的放缩
有时需要将图像的某一部分放大以查看局部的详细情况,输入zoom on命令即可实现图像的放缩,zoom off可以关闭图像放缩功能。打开图像放缩功能之后,就可以通过简单的鼠标操作观察图像细部。

5.像素值查看工具
使用imshow函数显示一幅图像之后,可以通过输入pixval命令在最后显示的图像窗口中打开一个TOOLTIP风格的提示栏,随光标的移动显示鼠标指针所指位置处的像素值。

本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。

时间: 2024-11-08 21:22:21

《数字图像处理与机器视觉——Visual C++与Matlab实现》——1.5 图像的显示的相关文章

《数字图像处理与机器视觉——Visual C++与Matlab实现》——1.3 Matlab的图像转换

1.3 Matlab的图像转换 数字图像处理与机器视觉--Visual C++与Matlab实现1.图像存储格式的互相转换有时必须将图像存储格式加以转换才能使用某些图像处理函数.例如,当使用某些Matlab内置的滤镜时,需要将索引图像转换为RGB图像或者灰度图像,Matlab才会将图像滤镜应用于图像数据本身,而不是索引图像中的颜色索引值表(这将产生无意义的结果). Matlab提供了一系列存储格式转换函数,如表1.11所示.它们的名字都便于记忆,例如,ind2gray可以将索引图像转化为灰度图像

《数字图像处理与机器视觉——Visual C++与Matlab实现》——0.1 数字图像

0.1 数字图像 数字图像处理与机器视觉--Visual C++与Matlab实现 自然界中的图像都是模拟量,在计算机普遍应用之前,电视.电影.照相机等图像记录与传输设备都是使用模拟信号对图像进行处理.但是,计算机只能处理数字量,而不能直接处理模拟图像.所以我们要在使用计算机处理图像之前进行图像数字化. 0.1.1 什么是数字图像 简单地说,数字图像就是能够在计算机上显示和处理的图像,根据其特性可分为两大类--位图和矢量图.位图通常使用数字阵列来表示,常见格式有BMP.JPG.GIF等:矢量图由

《数字图像处理与机器视觉——Visual C++与Matlab实现(第2版)》一一0.1 数字图像

0.1 数字图像 数字图像处理与机器视觉--Visual C++与Matlab实现(第2版) 自然界中的图像都是模拟量,在计算机普遍应用之前,电视.电影.照相机等图像记录与传输设备都是使用模拟信号对图像进行处理.但是,计算机只能处理数字量,而不能直接处理模拟图像.所以要在使用计算机处理图像之前进行图像数字化. 0.1.1 什么是数字图像 简单地说,数字图像就是能够在计算机上显示和处理的图像,可根据其特性分为两大类--位图和矢量图.位图通常使用数字阵列来表示,常见格式有BMP.JPG.GIF等:矢

《数字图像处理与机器视觉——Visual C++与Matlab实现》——1.2 Matlab图像类型及其存储方式

1.2 Matlab图像类型及其存储方式 数字图像处理与机器视觉--Visual C++与Matlab实现 在0.1.3小节介绍数字图像的分类时,曾提及一些主要的图像类型.本节将介绍这些主要的图像类型在Matlab中是如何存储和表示的,主要包括亮度图像.RGB图像.索引图像.二值图像和多帧图像. 1.亮度图像(Intensity Image) 亮度图像即灰度图像.Matlab使用二维矩阵存储亮度图像,矩阵中的每个元素直接表示一个像素的亮度(灰度)信息.例如,一个200像素×300像素的图像被存储

《数字图像处理与机器视觉——Visual C++与Matlab实现》——0.2 数字图像处理与识别

0.2 数字图像处理与识别 数字图像处理与机器视觉--Visual C++与Matlab实现 0.2.1 从图像处理到图像识别 图像处理.图像分析和图像识别是认知学科与计算机学科中的一个令人兴奋的活跃分支.经历了1970年人们对其兴趣的爆炸性增长以来,这个领域到上世纪末逐渐步入成熟.其中,遥感.技术诊断.智能车自主导航.医学平面和立体成像.自动监视领域是发展最快的一些方向.这种进展最集中地体现则是市场上多种应用这类技术的产品的纷纷涌现.事实上,从数字图像处理到数字图像分析,再发展到最前沿的图像识

《数字图像处理与机器视觉——Visual C++与Matlab实现》——1章 Matlab图像处理编程基础

第1章 Matlab图像处理编程基础 数字图像处理与机器视觉--Visual C++与Matlab实现 Matlab是Mathworks公司开发的一款工程数学计算软件.不同于C++.Java.Fortran等高级编程语言是对机器行为进行描述,Matlab是对数学操作进行更直接的描述.Matlab图像处理工具箱(Image Processing Toolbox,IPT)封装了一系列针对不同图像处理需求的标准算法,它们都是通过直接或间接调用Matlab中的矩阵运算和数值运算函数来完成图像处理任务的.

《数字图像处理与机器视觉——Visual C++与Matlab实现》——第0章 数字图像处理概述

第0章 数字图像处理概述 数字图像处理与机器视觉--Visual C++与Matlab实现图像是指能在人的视觉系统中产生视觉印象的客观对象,包括自然景物.拍摄到的图片.用数学方法描述的图形.图像的要素有几何要素(刻画对象的轮廓.形状等)和非几何要素(刻画对象的颜色.材质等). 本章中,我们主要讲解数字图像的实质和数字图像处理的一般步骤,以及后面会经常使用到的基本概念. 本文仅用于学习和交流目的,不代表异步社区观点.非商业转载请注明作译者.出处,并保留本文的原始链接.

《数字图像处理与机器视觉——Visual C++与Matlab实现》——1.4 读取和写入图像文件

1.4 读取和写入图像文件 数字图像处理与机器视觉--Visual C++与Matlab实现Matlab可以处理以下的图像文件类型:BMP.HDF.JPEG.PCX.TIFF.XWD.ICO.GIF.CUR.可以使用imread和imwrite函数对图像文件进行读写操作,使用imfinfo函数来获得数字图像的相关信息. 1.imread函数imread函数可以将指定位置的图像文件读入工作区.对于除索引图像以外的情况,其原型为: A = imread(FILENAME, FMT); 参数说明: F

《数字图像处理与机器视觉——Visual C++与Matlab实现》——1.1 Matlab操作简介

1.1 Matlab操作简介 数字图像处理与机器视觉--Visual C++与Matlab实现本节将介绍一些Matlab中与图像处理密切相关的数据结构及基本操作,如基本文件操作.变量使用.程序流程控制.打开和关闭图像以及图像格式转换和存储方式等.这些都是后续学习图像处理算法的基础. 1.1.1 Matlab软件环境1.软件界面如图1.1所示是运行于32-bit Windows操作系统上的Matlab R2008a截图.软件主界面由3个子窗口组成,左上为当前工作目录的文件列表(可以通过上方的Cur