APP下载

基于MATLAB数字图像GLCM纹理分析软件实现

2019-01-08王辉丛榆坤陈金阳王敏

数字技术与应用 2019年10期
关键词:图像处理技术软件设计

王辉 丛榆坤 陈金阳 王敏

摘要:结合数字图像处理技术课程与科研实验的需要,针对图像灰度共生矩阵纹理二次特征提取问题的需求,本文使用MATLAB语言设计了灰度共生矩阵图像处理及特征提取程序,并给出了软件算法在MATLAB开发平台上程序的源代码。

关键词:图像处理技术;纹理特征;灰度共生矩阵;软件设计;MATLAB

中图分类号:TP391 文献标识码:A 文章编号:1007-9416(2019)10-0146-03

1 图像处理技术与灰度共生矩阵

数字图像处理技术(Digital Image Processing)主要讨论用计算机对数字图像进行去除噪声、图像增强、图像复原、图像分割、图像提取特征等处理的加工方法和分析技术。纹理特征是数字图像处理分析中的常用的重要特征,它描述了数字图像中重复出现的局部模式以及排列规则,常用于图像分类和场景识别。本文结合数字图像处理技术课程与科研实验的需要,针对图像灰度共生矩阵纹理二次特征提取问题的需求,本文使用MATLAB语言设计了灰度共生矩阵图像处理程序,并给出了软件算法在MATLAB开发平台上程序的源代码。

2 灰度共生矩阵MATLAB软件程序设计

2.1 函数程序和软件使用方法

软件主函数为function GLCM_FAST(path_of_image,seq,step, gray_level),其中,Path_of_Image图像存储路径,string格式;Seq批处理图像序号,Seq=[first last],first是首图片编号,last是尾图片编号;Step灰度共生矩阵生成步长,Step=1、2、3...整数;GRAY_LEVEL图像灰度级数,GRAY_LEVEL一般取值为16,32,64,128,256;函数返回值为灰度共生矩阵14个特征参数及程序运行时间。

软件子函数计算θ=0°、45°、90°、135°四个方向灰度共生矩阵函数分别为function GCLM_P=Cal_Co_Matrix_0(DATA,GRAY_LEVEL,STEP)、functionGCLM_P=Cal_Co_Matrix_45(DATA,GRAY_LEVEL,STEP)、function GCLM_P=Cal_Co_ Matrix_90(DATA,GRAY_LEVEL,STEP)以及function GCLM_P=Cal_Co_Matrix_135(DATA,GRAY_LEVEL,STEP),其中,DATA已经读入的图像数据,Step、GRAY_LEVEL同上。软件子函数计算灰度共生矩阵14个特征参数函数为function Parameter= Cal_Para(GCLM_P,GRAY_LEVEL),GCLM_P待处理的灰度共生矩阵,其函数返回值为灰度共生矩阵14个特征参数,软件程序流程图如图1所示。

软件使用方法如下:(1)将文件置于MATLAB软件默认调用函数目录中;(2)将待处理图片,依次按数字编号1,2,3...,修改文件名;(3)打开MATLAB程序,在命令窗口中,分别给Path_of_Image、Seq、Step、GRAY_LEVEL赋初始值;(4)在命令窗口中,输入“GLCM_FAST(Path_of_Image,Seq,Step,GRAY_LEVEL);”即可运行程序。待弹出窗口后,程序结束,在命令窗口中,显示程序运行时间,并将所得特征参数写到当前目录下相应的“WH_4_ Angles.txt”、“WH_AVR.txt”和“WH_4_Angles_Gui.txt”等3个数据文件中,分别对应灰度共生矩阵4个方向特征參数值数据文件、4个方向特征参数平均值数据文件和4个方向归一化后特征参数值数据文件。

2.2 主函数程序程序代码

function GLCM_FAST(path_of_image,seq,step, gray_level)

clc;

t=cputime;

Seq= seq;

STEP=step;

GRAY_LEVEL=gray_level;

PATH_OF_IMAGE= path_of_image;

YDT=fix(clock);

time=[num2str(YDT(4)),':',num2str(YDT(5)),':',num2str(YDT(6))];

disp(time)

eval(['cd' ' ' PATH_OF_IMAGE]);

ff0=fopen('WH_4_Angles.txt','w');

ff1=fopen('WH_AVR.txt','w');

ff2=fopen('WH_4_Angles_Gui.txt','w');

Image_First=Seq(1);Image_Last=Seq(2);

name=int2str(Image_First);

for Image_number=Image_First:Image_Last

x=imread(name,'bmp');

data=rgb2gray(x);

DATA=double(data);

GCLM_P1=Cal_Co_Matrix_0(DATA,GRAY_LEVEL,STEP);

Parameter(1,:)=Cal_Para(GCLM_P1,GRAY_LEVEL);

GCLM_P2=Cal_Co_Matrix_45(DATA,GRAY_LEVEL,STEP);

Parameter(2,:)=Cal_Para(GCLM_P2,GRAY_LEVEL);

GCLM_P3=Cal_Co_Matrix_90(DATA,GRAY_LEVEL,STEP);

Parameter(3,:)=Cal_Para(GCLM_P3,GRAY_LEVEL);

GCLM_P4=Cal_Co_Matrix_135(DATA,GRAY_LEVEL,STEP);

Parameter(4,:)=Cal_Para(GCLM_P4,GRAY_LEVEL);

PARAMETER=mean(Parameter);

P_SUM=sum(Parameter);

Parameter_Gui=Parameter;

for iii=1:14

Parameter_Gui(:,iii)=Parameter(:,iii)/P_SUM(iii);

end

for J=1:4

for I=1:14

String=[num2str(Parameter(J,I)),' '];

fprintf(ff0,'%s',String);

String2=[num2str(Parameter_Gui(J,I)),' '];

fprintf(ff2,'%s',String2);

if J==1

String1=[num2str(PARAMETER(I)),' '];

fprintf(ff1,'%s',String1);

end

end%

fprintf(ff0,'%s\n',';');

fprintf(ff2,'%s\n',';');

end%

fprintf(ff1,'%s\n',';');

name=str2double(name);name=name+1;name=int2str(name);

fprintf(ff0,'%s\n','');

fprintf(ff2,'%s\n','');

end

fclose(ff0);

fclose(ff1);

fclose(ff2);

YDT=fix(clock);

time=[num2str(YDT(4)),':',num2str(YDT(5)),':',num2str(YDT(6))];

disp(time)

disp(cputime-t)

Figure

3 結语

本文使用MATLAB语言设计了灰度共生矩阵图像处理及特征提取程序,给出了软件算法在MATLAB开发平台上程序的源代码。该软件应用于机器视觉、智能控制与模式识别研究领域,获取已知图像的灰度图像共生矩阵,能够反映图像灰度关于方向、相邻间隔、变化幅度的综合信息。通过灰度共生矩阵可以分析图像的局部模式和排列规则等。还可以提取其角二阶矩、对比度、相关、熵、方差、均值和、方差和、逆差矩、差的方差、和熵、差熵、聚类阴影、显著聚类和最大概率共14个纹理特征参数。该程序使用灵活,设有6个输入形式参数,输入图像格式兼容范围广,输出为灰度共生矩阵及其特征参数,可以根据需要设置灰度共生矩阵及其特征的获取参数,以满足不同需求下的纹理参数获取。此外,本软件还可以计算程序执行时间,能够解决图像灰度共生矩阵纹理二次特征提取问题的需求,同时能够满足数字图像处理技术课程与科研实验的需要。

参考文献

[1] 王辉,白雪冰,丁金华,等.基于贝叶斯理论集成网络分类器在板材识别中的应用[J].大连工业大学学报,2015,34(3):231-234.

[2] 兰蓉,母保洋.二级分区下颜色融合纹理的刑侦图像检索[J].计算机应用与软件,2019,36(8):181-188.

[3] 芦兵,孙俊,杨宁,等.基于荧光透射谱和高光谱图像纹理的茶叶病害预测研究[J].光谱学与光谱分析,2019,39(8):2515-2521.

[4] 肖志云,刘洪.小波域马铃薯典型虫害图像特征选择与识别[J].农业机械学报,2017,48(9):24-31.

[5] 基于MATLAB语谱图的声乐研究[J].软件工程,2019,22(9):1-4.

猜你喜欢

图像处理技术软件设计
基于单片机SPCE061A的字幕机点阵式字母电子显示屏的设计制作