Apply a colored filter on grayscale image?

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 日

0 投票

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 件のコメント

Filippo Gambarota
Filippo Gambarota 2019 年 1 月 21 日
Thanks! I've just tried an it works fine! However i'm trying to ask another question.
Now i have the grayscale image in red and the other in green. However i think that green and red have different luminance. Is there any way to match the green and red luminance?
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