天天看點

使用自相關函數的紋理圖像周期計算

在進行紋理分析時計算紋理周期有很大作用,而自相關函數用來計算紋理周期具有很好的效果。要計算紋理圖像的自相關函數值,可以使用matlab裡面的xcorr2函數。具體代碼如下:

clear;clc;
I = imread('1.jpg');
GRAY=rgb2gray(I);
LENGTH=40;
WIDTH=size(I,2);
HEIGHT=size(I,1);
MED=medfilt2(GRAY);
corr=xcorr2(MED);
for i=0:LENGTH
    rho(i+1)=WIDTH*corr(HEIGHT,WIDTH-i)/(corr(HEIGHT,WIDTH)*(WIDTH-i));
end
subplot(1,2,1);plot(linspace(0,LENGTH,LENGTH+1),rho, '-*');
[peaks,location]=findpeaks(rho);
count=size(peaks,2);
diff=zeros(1,count);
diff(1)=location(1)-1;
for i=1:count-1
    diff(i+1)=location(i+1)-location(i);
end
subplot(1,2,2);plot(linspace(1,count,count),diff, '-*');
period=round(sum(diff)/count)
           
使用自相關函數的紋理圖像周期計算

自相關函數值的計算結果如下,最後計算出的紋理周期為6個像素。

使用自相關函數的紋理圖像周期計算

繼續閱讀