Apply a colored filter on grayscale image?

4 次查看(过去 30 天)
I have two grayscale images and i need to merge as an anaglyph image without shifting. The purpose is to watch this image with red-green glasses thereby having a red filtered image only visible with one lens and a green filtered image only visible with the other.
I've found the function
imfuse()
But i need to apply a red and green filter. It is possible on grayscale images? how can i do?
Thanks

采纳的回答

Naman Chaturvedi
Naman Chaturvedi 2019-1-21
You grayscale image (say iRed) is a m*n*1 matrix. (m, n are x and y dimensions). To make the grayscale image iRed to redscale image, do the following computations:
>> iRedMonochrome=cat(3,iRed,zeros(size(iRed)),zeros(size(iRed))); % for red filter [R 0 0]
>> iGreenMonochrome=cat(3,zeros(size(iGreen)),iGreen,zeros(size(iGreen))); % for green filter [0 G 0]
>> iBlueMonochrome=cat(3,zeros(size(iBlue)),zeros(size(iBlue)),iBlue); % for blue filter [0 0 B]
You can then simply add the images:
>> iRGB=iRedMonochrome+iGreenMonochrome+iBlueMonochrome;
  3 个评论
Image Analyst
Image Analyst 2019-1-21
If the gray is the ref
meanGreen = mean2(greenImage);
meanRed = mean2(redImage);
redImage = double(redImage) * meanGreen / meanRed;
Or use imhistmatch().
Filippo Gambarota
Filippo Gambarota 2019-1-21
Unfortunately the output is a flat red image...
F1_red=cat(3,SHINEd_F1,zeros(size(SHINEd_F1)),zeros(size(SHINEd_F1)));
N1_green=cat(3,zeros(size(SHINEd_N1)),SHINEd_N1,zeros(size(SHINEd_N1)));
final = imhistmatch(N1_green,F1_red)
imshow(final)

请先登录,再进行评论。

更多回答(0 个)

产品


版本

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by