MATLAB Answers

Average of tiles in an image

1 view (last 30 days)
tarun
tarun on 7 Apr 2013
0 down vote favorite
I have an image which is 256X256 pixels and that image 'a' has 16 '16X16' pixels similar tiles(random noise distributed over the image). I want to take the average of each tile and replace it with the first tile and then display the result.
I used the following code
im = imread('tiles.tif')
a = blockproc(im, [16 16], @(x)mean(x.data(:)));% this
imshow(im,[]);
I thought it worked but it is displaying the same original image. can someone please tell me what is wrong or what am I missing?Thanks
  1 Comment
Anand
Anand on 7 Apr 2013
Please clarify your question. What are you trying to achieve?
The code you have right now is going to replace each 16x16 tile in the image with a 1x1 tile containing the average intensity in the tile. So the size of a should be 16 x 16.

Sign in to comment.

Accepted Answer

Image Analyst
Image Analyst on 7 Apr 2013
You never display the result - the badly-named "a". Try this
subplot(1, 2, 1);
imshow(im, []);
subplot(1, 2, 2);
imshow(a, []); % Pick a better name than "a"
% Enlarge figure to full screen.
set(gcf, 'units','normalized','outerposition',[0 0 1 1]);

More Answers (0)

Community Treasure Hunt

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

Start Hunting!