ژانویه 26, 2018 , admin , پیغام بگذارید
تبدیل تصاویر RGB به HSI که در سه مرحله صورت می گیرد بصورت زیر است :
1-خواندن تصویر مربوطه
2-نمایش تصویر RGB در سه مد رنگی تشکیل دهنده اصلی R -G -B
3-محاسبه مقدار HUE بر اساس مقادیر RGB بر اساس فرمول یزر
MATLAB CODE:
Read a RGB Image
A=imread(‘peppers.png’);
figure,imshow(A);title(‘RGB Image’);
%Represent the RGB image in [0 1] range
I=double(A)/255;
R=I(:,:,1);
G=I(:,:,2);
B=I(:,:,3);
%Hue
numi=1/2*((R-G)+(R-B));
denom=((R-G).^2+((R-B).*(G-B))).^0.5;
%To avoid divide by zero exception add a small number in the denominator
H=acosd(numi./(denom+0.000001));
%If B>G then H= 360-Theta
H(B>G)=360-H(B>G);
%Normalize to the range [0 1]
H=H/360;
%Saturation
S=1- (3./(sum(I,3)+0.000001)).*min(I,[],3);
%Intensity
I=sum(I,3)./3;
%HSI
HSI=zeros(size(A));
HSI(:,:,1)=H;
HSI(:,:,2)=S;
HSI(:,:,3)=I;
figure,imshow(HSI);title(‘HSI Image’);
شرح عملیات فوق بصورت زیر است
1-خواندن تصویر اصلی
2-اجزای تصاویر RGB که در محدوده 255 قابل نمایش هست با تبدیل به بازه 0/1 خواهید رسید
3- ارزش تتا را پیدا کنید. اگر B <= G سپس H = theta. اگر B> G سپس H = 360 تتا
4- از تابع ‘acosd’ برای یافتن کوزینوی معکوس استفاده کنید و نتیجه را در درجه ای بدست آورید.
5- مولفه رنگ را با 360 تقسیم کنید تا در محدوده [0 1] نشان داده شود
6- به طور مشابه، اشباع و اجزای شدت را پیدا کنید.
7- تصویر را نشان می دهد