像素值和统计量

MATLAB图像处理工具箱中提供了几个函数可以返回与图像数据有关的信息。这些函数用不同形式返回这些信息,包括:[大谦MATLAB,dqmatlab点com]

选定点的数据值(pixval、impixel函数);

图像中沿一定路径分布的数据值(improfile函数);

图像数据的等值线图(imcontour函数);

图像数据的直方图(imhist函数);

图像数据的综述统计量(mean2、std2和corr2函数);

图像区域的特征度量(regionprops函数)。

像素选择

在MATLAB图像处理工具箱中,有两个函数提供了与图像中指定像素的颜色数据值有关的信息。

pixval函数可以交互显示图像上像素的数据值。它还可以显示两个像素之间的距离。

impixel函数返回选定的一个或一系列像素的数据值。它可以将选定像素的坐标作为输入变量,或者可以用鼠标选择像素。

在使用pixval函数时,首先显示一幅图像,然后输入pixval命令。pixval函数在图像下面输出一个黑色长条,这个黑色长条可以显示鼠标下方像素的坐标值(x, y)和该像素的颜色数据。

如果在图像上拖曳鼠标,则pixval函数还会显示单击点与鼠标光标当前位置之间的距离。pixval函数通过在这些点之连画线来表示它们之间的距离已经测量了。释放鼠标光标时,直线和距离显示消失。

pixval函数即时给出的结果比impixel函数多,但是使用impixel函数可以把结果返回给一个变量,这个变量可以以交互或非交互的方式被调用。如果以无参方式调用impixel函数,则当鼠标光标位于图像上方时,鼠标光标会变成十字形。然后可以单击感兴趣的像素,impixel函数在选择的每个像素上显示一个小的星形。选定以后,按回车键,impixel函数返回选定像素的颜色值,然后星形消失。

impixel函数的使用。

impixel函数的使用。

(1)显示图像。

code.matlab
>> imshow Tiantang.bmp

(2)调用impixel函数选择像素点。

code.matlab
>> vals=impixel

(3)在图像上单击一些点来选择像素,最后再双击一次,如图4-1所示。

impixel函数将像素值返回到vals中。

code.matlab
vals =
    40    68    35
   201   210   220
   142   197   186

灰度轮廓

improfile函数用于沿图像中的线段或多义线计算和显示灰度。可以将直线段的端点坐标作为输入变量,也可以用鼠标定义路径。在使用第2种方法时,improfile函数使用插值法来确定路径上等间隔点的值。默认时,improfile函数使用最近邻插值,但是可以指定其他不同的方法。improfile函数用于处理灰度图像和RGB图像时效果最佳。

调用improfile函数并指定一条直线段。

code.matlab
>> I=fitsread('solarspectra.fts');
>> imshow(I,[]);
>> improfile

效果如图4-2所示。其中,直线段的位置用红色表示,从上至下绘制。

improfile函数显示沿直线分布的数据值,如图4-3所示。请注意线形图中的峰和谷是如何与图像上的亮带和黑带相对应的。

Document Image Document Image

图4-2 在图像上绘制一条直线段图 4-3 用线形图表示沿直线分布的数据值

improfile函数用于处理RGB图像显示。使用imshow函数可以在图形窗口中显示图像。调用不带参数的improfile函数,在图像上交互式地跟踪直线段。

code.matlab
>> imshow peppers.png
>> improfile

在生成的图中,用鼠标画出直线段,双击鼠标,终止绘制,结果见图4-4。图中的黑色直线段就是用鼠标画的直线段。

使用improfile函数可以显示沿直线段分布的RGB值的线形图,如图4-5所示。图像中分别包括了红色、绿色和蓝色亮度值的图形。

Document Image Document Image

图4-4 在图像上绘一条直线段 图4-5 沿直线段分布的RGB值的线形图

图形等值线

用imcontour函数可以显示灰度图中数据的等值线图。该函数与MATLAB中的contour函数相似,但它会自动设置坐标轴,使得它们的方向和大小比例与图像匹配。

显示鸟的图像和它的等值线图。

code.matlab
>> I=imread('Bird.bmp');
>> I2=im2bw(I);
>> imshow(I2)
>> figure, imcontour(I2,3)

如图4-6所示,图4-6(a)为鸟的图像,图4-6(b)为等值线图。

Document Image Document Image

(a) (b)

图4-6 图像及其等值线图

可以用clabel函数标注等值线的水平。

图像直方图

图像直方图是一种显示索引图像或灰度图像亮度分布的图形。用imhist函数可以创建图像直方图。该图首先将数据分成n个等间距的条形,每个条形表示一个数据范围,然后计算落在这个范围内像素的个数。

显示一个米粒图像和一个有64个条形的直方图。该直方图显示了一个值为100左右的峰,对应于图像背景中的深灰色。

code.matlab
>> I=imread('rice.png');
>> imshow(I)
>> figure, imhist(I)

结果如图4-7所示。

Document Image Document Image

(a) (b)

图4-7 图像及其直方图

综述统计量

使用mean2、std2和corr2函数可以计算图像的标准统计量。其中mean2和std2函数可以计算矩阵中元素的均值和标准差,corr2函数可以计算两个大小相同的矩阵的相关系数。

区域属性度量

用regionprops函数可以计算图像区域的属性。例如,regionprops函数可以度量诸如面积、质心和包围盒等属性。