Is there a built-in Demosaicing option in Matlab which doesn't use interpolation and instead just reduces the image size?
    5 views (last 30 days)
  
       Show older comments
    
I am aware of demosaic(I,sensorAlignment) function in matlab. But if one would want to reduce noise and just reduce the resolution instead (e.g, to a quarter), does matlab already have a built-in function for that?
1 Comment
Accepted Answer
  Neil Guertin
    
 on 22 Aug 2017
        There is not currently a built in way to do this. However, it is pretty simple to write:
 I = imread('mandi.tif');
 I = I(1:end-mod(end,2),1:end-mod(end,2)); %In case image dimensions are odd
 I2 = zeros([size(I)/2 3],class(I));
 I2(:,:,1) = I(2:2:end,2:2:end);
 I2(:,:,2) = I(1:2:end,2:2:end)/2 + I(2:2:end,1:2:end)/2;
 I2(:,:,3) = I(1:2:end,1:2:end);
 imshow(I2)
However, there will be some artifacts that interpolation would have smoothed out: look at Mandi's chin for example. Also note that you are actually losing resolution in the green channel by averaging the two green pixels when you do it this way.
More Answers (0)
See Also
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

