Υφή

Standard

Ο αλγόριθμος του Law, αποτελεί μια προσέγγιση για την δημιουργία χαρακτηριστικών υφής. Σύμφωνα με τον συγκεκριμένο αλγόριθμο, για τον υπολογισμό της ενέργειας της υφής χρησιμοποιείται ένα σύνολο συνελικτικών μασκών που αναπαριστάνεται με ένα διάνυσμα αριθμών για κάθε εικονοστοιχείο. Οι μάσκες υπολογίζονται με βάση τα διανύσματα που ακολουθούν:

4A16CC7BD5DDCF61_335_0

Το διάνυσμα L προ σδιορίζει ένα κεντραρισμένο τοπικό μέσο. Το διάνυσμα E ανιχνεύει ακμές, το διάνυσμα S ανιχνεύει κηλίδες και το διάνυσμα R ανιχνεύει κυματισμούς.

Για την υλοποίηση του αλγορίθμου του Laws με τη βοήθεια του MATLAB, χρησιμοποιείται ένα σύνολο συναρτήσεων, οι οποίες είναι υλοποιημένες σε διαφορετικά αρχεία. Πιο συγκεκριμένα, ο κώδικας που χρησιμοποιείται για την υλοποίηση των αλγορίθμων ανίχνευσης ακμών είναι ο εξής:

Αρχείο LawsTexture.m

function LawsTexture()

clc; % Clear command window.
L5=[1,4,6,4,1];
E5=[-1,-2,0,2,1];
S5=[-1,0,2,0,-1];
R5=[1,-4,6,-4,1];
L5E5=L5’*E5;
E5L5=E5’*L5;
L5R5=L5’*R5;
R5L5=R5’*L5;
E5S5=E5’*S5;
S5E5=S5’*E5;
S5S5=S5’*S5;
R5R5=R5’*R5;
L5S5=L5’*S5;
S5L5=S5’*L5;
E5E5=E5’*E5;
E5R5=E5’*R5;
R5E5=R5’*E5;
S5R5=S5’*R5;
R5S5=R5’*S5;

%Image=imread(‘coins.png’);

Image=imread(‘coins.png’);
subplot(4,4,1);
imshow(Image);
d=5; % Window width
X=preprocess(Image, d);
for kernel = 1:15
disp(kernel); % Print it to the command window.

switch kernel
case 1

%Create the fk with use of convolution(X is the preprocessed image)
fk = conv2(double(X),double(L5E5));

case 2
fk = conv2(double(X),double(E5L5));

case 3
fk = conv2(double(X),double(L5R5));

case 4
fk = conv2(double(X),double(R5L5));

case 5
fk = conv2(double(X),double(S5S5));

case 6
fk = conv2(double(X),double(R5R5));

case 7
fk = conv2(double(X),double(L5S5));

case 8
fk = conv2(double(X),double(S5L5));

case 9
fk = conv2(double(X),double(E5E5));

case 10
fk = conv2(double(X),double(E5R5));

case 11
fk = conv2(double(X),double(R5E5));

case 12

fk = conv2(double(X),double(S5R5));

case 13

fk = conv2(double(X),double(R5S5));

case 14
fk = conv2(double(X),double(E5S5));

case 15
fk = conv2(double(X),double(S5E5));

end

% Calculate texture energy maps.
% m,n are dimensions of fk

[m n] = size(fk);
energyMap = Ek(fk, m, n);

% Show the images. Make sure to add the [].
subplot(4, 4, kernel + 1);
imshow(energyMap, []);

end % of for loop.
return; % from LawsTexture()

Έπειτα καλούνται οι συναρτήσεις στα αρχεία ek.m preprocess.m, έτσι όπως περιγράφονται στην συνέχεια:

Αρχείο ek.m

%Use fk to calculate texture energy map:

function ek=Ek(fk,m,n)
for i=8:m-7

for j=8:n-7

ek(i,j)=sum(sum(abs(fk(i-7:i+7,j-7:j+7))));

end

end

Αρχείο Preprocess.m

function prepimg=preprocess(Image,d)

[m n]=size(Image);

prepimg=double(Image);

for j=1:d:m

if j+d-1>m
break;
end
for i=1:d:n
if i+d-1>n
break;
end
prepimg(j:j+d-1,i:i+d-1)=prepimg(j:j+d-1,i:i+d-1)- mean(mean(prepimg(j:j+d-1,i:i+d-1)));

end
end

Η εικόνα πάνω στην οποία πραγματοποιείται η επίδειξη των αλγορίθμων είναι το αρχείο “coins.png”. Στην αυθεντική της μορφή η εικόνα έχει ως εξής:

4A16CC7BD5DDCF61_335_1

Στην οθόνη που ακολουθούν, επιστρέφεται το αποτέλεσμα της εικόνας που προκύπτει από την εφαρμογή του Law’s αλγόριθμου στο αρχικό αρχείο.

4A16CC7BD5DDCF61_335_2

yeezy boost 350 ua yeezytrainer yeezy boost 350 ua yeezytrainer yeezytrainer yeezy boost 350 ua yeezy boost 350 ua yeezy shoes yeezy shoes yeezy boost online

yeezy 350 boost for sale yeezy boost online yeezy shoes yeezy 350 boost for sale yeezy boost online yeezy shoes yeezy 350 boost for sale yeezy boost online yeezy shoes yeezy 350 boost for sale yeezy boost online yeezy shoes