MATLAB Answers


How can I divide image into 3x3 pixels?

Asked by Abdullah on 28 Oct 2016
Latest activity Commented on by Abdullah on 27 Nov 2016
I want to divide image into none-overlapping blocks into size of 3x3 pixels


Sign in to comment.

3 Answers

Answer by Image Analyst
on 28 Oct 2016

Depending on what you want to do with the 3x3 subimages, you might also want to look at imfilter(), conv2(), or nlfilter().


Sign in to comment.

Answer by Matt J
on 28 Oct 2016
Edited by Matt J
on 28 Oct 2016

Using mat2tiles ( Download ),
Blocks = mat2tiles(yourImage,[3,3]);


Thanks for your answer but I want to divide the image into 3 pixels by 3 pixels not 3x3 blocks, your answer is nice but its 3x3 blocks, do you have any idea how to divide it into 3x3 pixels
What for? What do you want to do once you have the 3x3 window? Maybe you can use conv2(), imfilter(), or nlfilter() without ever directly splitting up the image yourself (like I suggested in my answer).
And what is the difference whether you call them blocks or tiles? Either way, it's a sliding window of a 3-by-3 sub-image (window) of the full image. I don't understand your comment about this.
Matt J
on 30 Oct 2016
I'm also not clear on the distinction "3 pixels by 3 pixels not 3x3 blocks". Bear in mind though, that mat2tiles is a general tool for dividing up the image into non-overlapping sub-images. You can divide the image up into blocks of other sizes, if it suits you.

Sign in to comment.

Answer by Alex Taylor on 7 Nov 2016

The Image Processing Toolbox function blockproc can be used to execute any generic operation on blocked regions of your image.
I'm not sure what the distinction "3x3 pixels" vs. blocks vs. tiles is, as other users have posted.

  1 Comment

Dear @Alex Taylor I tried it already but the processing time take so long...I am using workstation computer 8 core with 16GB Ram but it take really there any other faster way ?

Sign in to comment.