|||
Visual Basic与图像处理(二)
2、图像的特征值计算
这里所说图像的特征值是指可以直接从图像中提取出来的特征参数,常用于对图像的整体性评价,如图像的灰度均值可以用于判断图像整体亮度的高低。在图像灰度化的基础上可以很便捷的完成图像特征值的计算,本例中以两个基本的特征参数计算作为示范:均值和标准差。从本质上来说,图像灰度化以后就相当于一个二维矩阵,因此均值的计算只要求得图像中所有像素点的灰度值之和,再除以图像的高度与宽度的乘积即可,图像的标准差计算方法与此类似。以MeanValue和StdValue分别表示图像的均值和标准差,其计算公式如下:
首先设计程序的软件界面,本例中运行界面如下图:
同样“读入图像”按钮的代码与前文类似,这里给出特征值计算按钮对于的程序代码:
Private Sub cmdCalFeature_Click()
Dim i As Integer, j As Integer
Dim PixelValue As Long
Dim r As Integer, g As Integer, b As Integer
Dim GrayValue As Integer
Dim SumValue As Long
Dim MeanValue As Single
Dim StdValue As Single
'图像均值计算
For i = 0 To SourceImHeight - 1
For j = 0 To SourceImWidth - 1
PixelValue = PicSource.Point(j, i)
r = PixelValue Mod 256
g = (PixelValue 256) Mod 256
b = PixelValue 65536
'插入图像处理的过程,对r, g, b进行处理
GrayValue = 0.3 * r + 0.59 * g + 0.11 * b
SumValue = SumValue + GrayValue
Next j
Next i
MeanValue = SumValue / SourceImHeight / SourceImWidth
MeanValue = Format(MeanValue, "0.00") '保留两位小数
txtMeanValue = Str(MeanValue)
'图像标准差计算
SumValue = 0
For i = 0 To SourceImHeight - 1
For j = 0 To SourceImWidth - 1
PixelValue = PicSource.Point(j, i)
r = PixelValue Mod 256
g = (PixelValue 256) Mod 256
b = PixelValue 65536
'插入图像处理的过程,对r, g, b进行处理
GrayValue = 0.3 * r + 0.59 * g + 0.11 * b
SumValue = SumValue + (GrayValue - MeanValue) ^ 2
Next j
Next i
StdValue = Sqr(SumValue / SourceImHeight / SourceImWidth)
StdValue = Format(StdValue, "0.00") '保留两位小数
txtStdValue = Str(StdValue)
End Sub
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-5-6 04:18
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社