matlab灰度變彩色+白平衡算法實現


% matlab彩色圖像分離通道並合並成處理后的彩色圖像(彩色變灰度再變彩色)
% 白平衡算法(灰度世界法)消除RGB受光照影響
clear all;
close all;
%讀入原始圖像
srcImage = imread('7.jpg');
figure,imshow(srcImage);
srcImageGray = rgb2gray(srcImage);
figure,imshow(srcImageGray);
%白平衡算法
R = srcImage(:,:,1);
G = srcImage(:,:,2);
B = srcImage(:,:,3);
%求其各通道平均值及增益
Raver = mean(mean(R));
Gaver = mean(mean(G));
Baver = mean(mean(B));
K = (Raver+Gaver+Baver)/3;
Kr = K/Raver;
Kg = K/Gaver;
Kb = K/Baver;
%更新RGB值
Rnew = R*Kr;
Gnew = G*Kg;
Bnew = B*Kb;
%合並通道
% [m,n,k] = size(srcImage);
% dstImage = zeros(m,n,k);
dstImage(:,:,1) = Rnew;
dstImage(:,:,2) = Gnew;
dstImage(:,:,3) = Bnew;

figure,imshow(dstImage);
dstImageGray = rgb2gray(dstImage);
figure,imshow(dstImageGray);

結果圖如下:

原圖:

白平衡后圖:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM