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 view (last 30 days)
Show older comments
kaavya subramani
on 28 Feb 2017
Answered: Image Analyst
on 28 Feb 2017
plz help me with matlab code
5 Comments
Guillaume
on 28 Feb 2017
Edited: Guillaume
on 28 Feb 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?
Accepted Answer
Guillaume
on 28 Feb 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
More Answers (1)
Image Analyst
on 28 Feb 2017
Looks like you're describing the local binary pattern, and I'm attaching my demo for that.
0 Comments
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!