在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
[FileName,PathName] = uigetfile('*.jpg'); imgdata = imread(FileName); rgb = imgdata;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
rgb = im2double(rgb); r = rgb(:,:,1); g = rgb(:,:,2); b = rgb(:,:,3);
num = 0.5*( (r - g) + ( r - b ) ); den = sqrt( (r - g).^2 + (r-b).*(g-b) ); theta = acos(num ./ (den + eps));
H=theta; H(b>g)=2*pi-H(b>g); H=H/(2*pi);
num=min(min(r,g),b); den=r+g+b; den(den==0)=eps; S=1-3.*num./den; H(S==0)=0; I=(r+g+b)/3; %Combine all three results into an hsi image. [width,height] = size(rgb);
height = height/3;
for i=1:width for j = 1:height h = H(i,j); s = S(i,j); if s>0.3 if h < 3.1415926/4 if h > -3.1415926/4 S(i,j,:) = 0; end end % rgb11(i,j,:) = I(i,j);
end
end end
hsi=cat(3,H,S,I);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
H=hsi(:,:,1)*2*pi; S=hsi(:,:,2); I=hsi(:,:,3);
%Implement the conversion equations. R=zeros(size(hsi,1),size(hsi,2)); G=zeros(size(hsi,1),size(hsi,2)); B=zeros(size(hsi,1),size(hsi,2));
% RG sector (0<=H<2*pi/3). idx=find((0<=H)&(H<2*pi/3)); B(idx)=I(idx).*(1-S(idx)); R(idx)=I(idx).*(1+S(idx).*cos(H(idx))./cos(pi/3-H(idx))); G(idx)=3*I(idx)-(R(idx)+B(idx)); %BG sector (2*pi/3<=H<4*pi/3). idx=find((2*pi/3<=H)&(H<4*pi/3)); R(idx)=I(idx).*(1-S(idx)); G(idx)=I(idx).*(1+S(idx).*cos(H(idx)-2*pi/3)./cos(pi-H(idx))); B(idx)=3*I(idx)-(R(idx)+G(idx)); %BR sector. idx=find((4*pi/3<=H)&(H<=2*pi)); G(idx)=I(idx).*(1-S(idx)); B(idx)=I(idx).*(1+S(idx).*cos(H(idx)-4*pi/3)./cos(5*pi/3-H(idx))); R(idx)=3*I(idx)-(G(idx)+B(idx)); %Combine all three results into an RGB image. Clip to [0,1] to compensate for floating-point arithmetic rounding effects. rgb=cat(3,R,G,B); rgb=max(min(rgb,1),0);
rgb11 = rgb;
imshow(rgb11);
figure(1); imshow(H);
figure(2); imshow(I);
figure(3); imshow(S);
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论