hi, i need to divide 64x64 binary image into 3x3 overlapping blocks, then in each block ,if center value is 0 leave that block as it is, else that block converted into decimal number ,
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
kaavya subramani
le 28 Fév 2017
Réponse apportée : Image Analyst
le 28 Fév 2017
plz help me with matlab code
5 commentaires
Guillaume
le 28 Fév 2017
Modifié(e) : Guillaume
le 28 Fév 2017
You haven't clarified anything about what form the output should be.
Given the image:
[1 1 1 1
1 1 0 1
1 1 1 1]
which would results in two overlapping blocks:
1 1 1 1 1 1
1 1 0 1 0 1
1 1 1 1 1 1
what's the result supposed to be?
out = {[1 1 1;1 1 0;1 1 1], 255}
according to your description, maybe?
Réponse acceptée
Guillaume
le 28 Fév 2017
m = randi([0 1], 64, 64); %demo matrix
out = zeros(size(m) - 3);
for col = 1 : size(m, 2) - 3
for row = 1 : size(m, 1) - 3
block = m(row:row+2, col:col+2);
if block(2, 2)
out(row, col) = polyval(block([1 4 7 8 9 6 3 2]), 2);
end
end
end
Plus de réponses (1)
Image Analyst
le 28 Fév 2017
Looks like you're describing the local binary pattern, and I'm attaching my demo for that.
0 commentaires
Voir également
Catégories
En savoir plus sur Logical dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!