王輝 叢榆坤 陳金陽 王敏
摘要:結合數字圖像處理技術課程與科研實驗的需要,針對圖像灰度共生矩陣紋理二次特征提取問題的需求,本文使用MATLAB語言設計了灰度共生矩陣圖像處理及特征提取程序,并給出了軟件算法在MATLAB開發(fā)平臺上程序的源代碼。
關鍵詞:圖像處理技術;紋理特征;灰度共生矩陣;軟件設計;MATLAB
中圖分類號:TP391 文獻標識碼:A 文章編號:1007-9416(2019)10-0146-03
1 圖像處理技術與灰度共生矩陣
數字圖像處理技術(Digital Image Processing)主要討論用計算機對數字圖像進行去除噪聲、圖像增強、圖像復原、圖像分割、圖像提取特征等處理的加工方法和分析技術。紋理特征是數字圖像處理分析中的常用的重要特征,它描述了數字圖像中重復出現(xiàn)的局部模式以及排列規(guī)則,常用于圖像分類和場景識別。本文結合數字圖像處理技術課程與科研實驗的需要,針對圖像灰度共生矩陣紋理二次特征提取問題的需求,本文使用MATLAB語言設計了灰度共生矩陣圖像處理程序,并給出了軟件算法在MATLAB開發(fā)平臺上程序的源代碼。
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開發(fā)平臺上程序的源代碼。該軟件應用于機器視覺、智能控制與模式識別研究領域,獲取已知圖像的灰度圖像共生矩陣,能夠反映圖像灰度關于方向、相鄰間隔、變化幅度的綜合信息。通過灰度共生矩陣可以分析圖像的局部模式和排列規(guī)則等。還可以提取其角二階矩、對比度、相關、熵、方差、均值和、方差和、逆差矩、差的方差、和熵、差熵、聚類陰影、顯著聚類和最大概率共14個紋理特征參數。該程序使用靈活,設有6個輸入形式參數,輸入圖像格式兼容范圍廣,輸出為灰度共生矩陣及其特征參數,可以根據需要設置灰度共生矩陣及其特征的獲取參數,以滿足不同需求下的紋理參數獲取。此外,本軟件還可以計算程序執(zhí)行時間,能夠解決圖像灰度共生矩陣紋理二次特征提取問題的需求,同時能夠滿足數字圖像處理技術課程與科研實驗的需要。
參考文獻
[1] 王輝,白雪冰,丁金華,等.基于貝葉斯理論集成網絡分類器在板材識別中的應用[J].大連工業(yè)大學學報,2015,34(3):231-234.
[2] 蘭蓉,母保洋.二級分區(qū)下顏色融合紋理的刑偵圖像檢索[J].計算機應用與軟件,2019,36(8):181-188.
[3] 蘆兵,孫俊,楊寧,等.基于熒光透射譜和高光譜圖像紋理的茶葉病害預測研究[J].光譜學與光譜分析,2019,39(8):2515-2521.
[4] 肖志云,劉洪.小波域馬鈴薯典型蟲害圖像特征選擇與識別[J].農業(yè)機械學報,2017,48(9):24-31.
[5] 基于MATLAB語譜圖的聲樂研究[J].軟件工程,2019,22(9):1-4.