issue in converting matrix to rgb image
Show older comments
I was trying to replace pixel values by their corresponding 3x3 non overlapping block. since the output matrix was of type double I converted it to uint8 type.
But when I displayed the image in the figure window it was gray instead of coloured image . I tried cat(3, gray, gray, gray) but image is still colourless.
What did I do wrong?
img= imread('C:\Users\prach\MATLAB programs\Lenna_(test_image).png');
new = blockproc(img, [10 10], fun);
new1= uint8(new);
imshow(new1)
rgbnew= cat(3, new1, new1, new1);
imshow(rgbnew)
7 Comments
PRACHI Sood
on 3 Apr 2020
Subhadeep Koley
on 10 May 2020
@PRACHI Your original "Lenna_(test_image).png" is gray-scale or color image?
Walter Roberson
on 10 May 2020
Remember that median() works along the first dimension by default, so median() of a 10 x 10 block is a 1 x 10 block. Unless, that is, the block is rgb, in which case median() of a 10 x 10 x 3 block is a 1 x 10 x 3 block. You probably want median(block_struct.data, [1 2])
Notice also that you are not doing a sliding window, so your output would be about 10 time smaller than the input.
PRACHI Sood
on 11 May 2020
PRACHI Sood
on 11 May 2020
Edited: PRACHI Sood
on 11 May 2020
Walter Roberson
on 11 May 2020
sounds like you are using a slightly older version of MATLAB that does not permit multiple dimensions. In that case as long as the image grayscale, median(block_struct.data(:))
But if you are dealing with rgb then it gets a bit messier,
median(reshape(block_struct.data,[],1,3),1)
PRACHI Sood
on 12 May 2020
Answers (1)
Image Analyst
on 10 May 2020
0 votes
You need to use imsplit() to get the individual color channels, and then process them and combine them with cat(3).
4 Comments
PRACHI Sood
on 11 May 2020
Image Analyst
on 11 May 2020
Attach the m-file and image. All you gave is a small partial snippet that can't run. How are you defining fun()???
See my attached blockproc() demos.
Image Analyst
on 11 May 2020
The blockproc_color_means.m demo gives this image. Is it like you want?

PRACHI Sood
on 12 May 2020
Categories
Find more on Convert Image Type in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!