How can I split the image into blocks and then extract the features from each block?

Hello
I extracts image features (invariant moment) using this code
[filename, pathname] = uigetfile({'*.*';'*.bmp';'*.jpg';'*.gif'}, 'Pick a Degraded Fingerprint Image File');
im = imread([pathname,filename]);
figure, imshow(im);title('Fingerprint Image');
n1=invmoments(im);
How can I split the image into blocks(every block like 32x32) and then extract the features from each block?

Più risposte (1)

if true
mat2cell(I,size(I,1)/32*ones(32,1), size(I,2)/32*ones(32,1), 3)
end
This will split an image into 32 x 32 blocks. Then you can extract image features from each blocks using for loop.

6 Commenti

thank you
[filename, pathname] = uigetfile({'*.*';'*.bmp';'*.jpg';'*.gif'}, 'Pick a Degraded Fingerprint Image File');
im = imread([pathname,filename]);
if true
mat2cell(im,size(im,1)/32*ones(32,1), size(im,2)/32*ones(32,1), 3)
end
give me this error
Error using mat2cell (line 80)
Number of input vector arguments, 3, does not match the input matrix's number of dimensions, 2.
@wisam kh Try this,
mat2cell(I,size(I,1)/4*ones(4,1), size(I,2)/4*ones(4,1), 3)
@Yuvaraj V
Sorry to bother you, but the same error appears.
By the way the picture type is grayscale
Check this,
https://in.mathworks.com/matlabcentral/answers/223978-how-to-divide-an-image-into-blocks

Accedi per commentare.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by