image block block dividing

1 view (last 30 days)
javeed miyandad
javeed miyandad on 10 Apr 2011
sir i have a black and white(binary image) of size(i j) and i need to divide image into blocks of 3X3 size please help me in coding.
sir i used r=blkproc(BW,[3 3]); but it showing error like this
??? Index exceeds matrix dimensions.
Error in ==> blkproc>parse_inputs at 244 [fun,msg] = fcnchk(varargin{3},length(params));
Error in ==> blkproc at 62 [a, block, border, fun, params, padval] = parse_inputs(varargin{:});

Accepted Answer

Walter Roberson
Walter Roberson on 10 Apr 2011
There is no default value for the function. You need to provide at least 3 arguments for blkproc()
If you do not want overlapping blocks, and your images are exact multiples of 3 on each side, and you just want all of the blocks returned instead of doing something with them, then:
r = mat2cell(BW, 3 * ones(1,size(BW,1)/3), 3 * ones(1,size(BW,2)/3));
This will return a cell array of 3x3 arrays.
  10 Comments
Walter Roberson
Walter Roberson on 10 Apr 2011
imshow(r{2,7}) %for example
Soumya
Soumya on 14 Nov 2011
Sir I happened to see this answer,and
1) now i have a doubt that how the entire blocks of the image can be viewed like that of blkproc().
2)imshow(r{2,7}) ->what doest the two values 2 and seven refer to?

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!