文章目录
一、灰度特征
1.gray_features - 获取特征值
作用:获取指定区域的灰度特征
算子:gray_features(区域, Image : : 特征 : Value)
参数:
特征:例如最大灰度max,最小灰度min,灰度中值median,灰度均值mean.
样例代码:
ImagePath:='D:/S3/image/1-10/1100张原图/18/s3_base/LouBai'
list_image_files(ImagePath,'default', [], ImageFiles)
for Index := 0 to |ImageFiles| by 1
read_image(Image, ImageFiles[Index])
threshold (Image, Regions, 33, 59)
gray_features(Regions, Image, ['median','mean','min','max'], Values)
stop()
endfor
2.intensity - 获取灰度平均值和偏差
作用:计算区域的灰度的平均值和偏差
算子:intensity(区域, Image : : : Mean, Deviation)
参数:
Mean:输出的平均值
Deviation:输出的偏差,值越大偏差越大
样例代码:
ImagePath:='D:/S3/image/1-13/13-origimn/s5_base/LouBai'
list_image_files(ImagePath, 'default', [], ImageFiles)
for Index:=0 to |ImageFiles|-1 by 1
read_image(Image, ImageFiles[Index])
threshold(Image, Region, 128, 255)
intensity(Region, Image, Mean, Deviation)
stop()
endfor
3.min_max_gray - 获取灰度的最小和最大值
作用:确定区域里最小和最大灰度值
算子:min_max_gray(区域, Image : : Percent : Min, Max, Range)
参数:
Percent:最少像素的比例,例如图片总共像素为1000,参数给5,即最大和最小灰度的像素个数要大于1000*0.05=50。
Min:最小灰度的值
Max:最大灰度的值
Range:灰度的跨度,即大灰度值-最小灰度值
样例代码
ImagePath:='D:/S3/image/1-13/13-origimn/s5_base/LouBai'
list_image_files(ImagePath, 'default', [], ImageFiles)
for Index:=0 to |ImageFiles|-1 by 1
read_image(Image, ImageFiles[Index])
threshold(Image, Region, 0, 125)
reduce_domain(Image, Region, ImageReduced)
min_max_gray(Region,Image,3,Min,Max,range)
stop()
endfor
4.arean_gray_center - 获取灰度的面积和重心
作用:提取灰度区域的面积和中心
算子:area_center_gray(区域, Image : : : Area, Row, Column)
参数:
Area:灰度面积
Row,Column:重心点横纵坐标
5.select_gray - 筛选灰度区域
作用:根据灰度特征选区域
算子:select_gray(区域, Image : SelectedRegions : 特征, Operation, Min, Max : )
参数:
Operation:and 或 or
二、纹理特征
1.gen_cooc_matrix - 创建灰度共生矩阵(搭配cooc_feature_matrix使用)
作用:创建灰度共生矩阵
算子:gen_cooc_matrix(区域, Image : Matrix : LdGray, Direction : )
参数:
Matrix :输出灰度共生矩阵
LdGray:计算灰度共生矩阵的窗口大小2的几次幂,1即2*2的窗口,2即4*4的窗口
Direction :计算灰度共生矩阵的方向有0, 45, 90, 135
2.cooc_feature_matrix - 根据灰度共生矩阵获取纹理特征
作用:根据灰度共生矩阵获取纹理特征
算子:cooc_feature_matrix(CoocMatrix : : : Energy, Correlation, Homogeneity, Contrast)
参数:
CoocMatrix :输入灰度共生矩阵
Energy:纹理特征- 能量即纹理变化的均匀性
Correlation:纹理特征- 相关性
Homogeneity:纹理特征- 局部均匀性
Contrast:纹理特征- 对比度
样例代码
ImagePath:='D:/S3/image/1-13/13-origimn/s5_base/LouBai'
list_image_files(ImagePath, 'default', [], ImageFiles)
for Index:=0 to |ImageFiles|-1 by 1
read_image(Image, ImageFiles[Index])
Energys:=[-1,-1,-1]
Correlations:=[-1,-1,-1]
Homogeneitys:=[-1,-1,-1]
Contrasts:=[-1,-1,-1]
gen_empty_obj(ROIS)
gen_circle (ROI_0, 3323.37, 2315.76, 200)
gen_circle (ROI_1, 7049.7, 2332.7, 200)
gen_circle (ROI_2, 12387.2, 2331.96, 200)
concat_obj(ROIS, ROI_0, ROIS)
concat_obj(ROIS, ROI_1, ROIS)
concat_obj(ROIS, ROI_2, ROIS)
count_obj(ROIS, Number)
for i:=1 to Number by 1
select_obj(ROIS, ROI, i)
gen_cooc_matrix(ROI, Image, Matrix, 6, 0)
cooc_feature_matrix(Matrix, Energy, Correlation, Homogeneity, Contrast)
Energys[i-1]:=Energy
Correlations[i-1]:=Correlation
Homogeneitys[i-1]:=Homogeneity
Contrasts[i-1]:=Contrast
endfor
stop()
endfor
3.cooc_feature_image - 获取纹理特征
作用:获取纹理特征
算子:cooc_feature_image(区域, Image : : LdGray, Direction : Energy, Correlation, Homogeneity, Contrast)
参数:
LdGray:计算灰度共生矩阵的窗口大小2的几次幂,1即2*2的窗口,2即4*4的窗口
Direction :计算灰度共生矩阵的方向有0, 45, 90, 135,'mean'
Energy:纹理特征- 能量即纹理变化的均匀性
Correlation:纹理特征- 相关性
Homogeneity:纹理特征- 局部均匀性
Contrast:纹理特征- 对比度
样例代码:
ImagePath:='D:/S3/image/1-13/13-origimn/s5_base/LouBai'
list_image_files(ImagePath, 'default', [], ImageFiles)
for Index:=0 to |ImageFiles|-1 by 1
read_image(Image, ImageFiles[Index])
Energys:=[-1,-1,-1]
Correlations:=[-1,-1,-1]
Homogeneitys:=[-1,-1,-1]
Contrasts:=[-1,-1,-1]
gen_empty_obj(ROIS)
gen_circle (ROI_0, 3323.37, 2315.76, 200)
gen_circle (ROI_1, 7049.7, 2332.7, 200)
gen_circle (ROI_2, 12387.2, 2331.96, 200)
concat_obj(ROIS, ROI_0, ROIS)
concat_obj(ROIS, ROI_1, ROIS)
concat_obj(ROIS, ROI_2, ROIS)
count_obj(ROIS, Number)
for i:=1 to Number by 1
select_obj(ROIS, ROI, i)
cooc_feature_image(ROI, Image, 6, 'mean', Energy, Correlation, Homogeneity, Contrast)
Energys[i-1]:=Energy
Correlations[i-1]:=Correlation
Homogeneitys[i-1]:=Homogeneity
Contrasts[i-1]:=Contrast
endfor
stop()
endfor