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 ,
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
kaavya subramani
el 28 de Feb. de 2017
Respondida: Image Analyst
el 28 de Feb. de 2017
plz help me with matlab code
5 comentarios
Guillaume
el 28 de Feb. de 2017
Editada: Guillaume
el 28 de Feb. de 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?
Respuesta aceptada
Guillaume
el 28 de Feb. de 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
Más respuestas (1)
Image Analyst
el 28 de Feb. de 2017
Looks like you're describing the local binary pattern, and I'm attaching my demo for that.
0 comentarios
Ver también
Categorías
Más información sobre Logical en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!