在进行纹理分析时计算纹理周期有很大作用,而自相关函数用来计算纹理周期具有很好的效果。要计算纹理图像的自相关函数值,可以使用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个像素。
转载自:
https://blog.csdn.net/hyanglu1573/article/details/37372345
本文出自勇哥的网站《少有人走的路》wwww.skcircle.com,转载请注明出处!讨论可扫码加群:


