تبدیل تصاویر متلبRGB به HSI

, , پیغام بگذارید

تبدیل تصاویر 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’);

تصویر rgb

%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- تصویر را نشان می دهد

 

پاسخ دادن

anti spam *