ОписBarns grand tetons HSV separation.jpg | English: This takes an image ( Image:Barns grand tetons.jpg) and displays the H, S and V elements of it. Note that the H element is the only one displaying colour. Compare the dark on the left side of the barn roof and the white of the snow; in both cases these have colour, but the saturation is very low, causing them to be near-greyscale; the intensity of the barn is much lower than the snow. The green of the grass is highly saturated and of moderate intensity; the blue of the mountains is consistent in colour but varies in intensity and saturation; and the sky has constant colour and intensity but varying saturation. Generator code In MATLAB: RGBimage = imread('barns_grand_tetons_reduced.jpg'); [height,width,depth]=size(RGBimage); HSVimage=rgb2hsv(RGBimage); % Caution: MATLAB's hsv2rgb routine is very memory-hungry. I had to halve % the size of the source image to avoid running out or memory (even with % a lot of swap space allocated). % Newer versions of matlab need outputimage=zeros(height*4,width,depth,'double'); outputimage=double(zeros(height*4,width,depth)); for w=1:width, for h=1:height, outputimage(h,w,1) = HSVimage(h,w,1); %Copy H, S and V for normal image outputimage(h,w,2) = HSVimage(h,w,2); outputimage(h,w,3) = HSVimage(h,w,3); outputimage(h+height,w,1) = HSVimage(h,w,1); %Copy H only for first component outputimage(h+height,w,2) = 1; outputimage(h+height,w,3) = 1; outputimage(h+(2*height),w,2) = HSVimage(h,w,2); %S only for second component outputimage(h+(2*height),w,1) = 1; outputimage(h+(2*height),w,3) = 1; outputimage(h+(3*height),w,3) = HSVimage(h,w,3); %V only for third component outputimage(h+(3*height),w,1) = 1; outputimage(h+(3*height),w,2) = 1; end end im2=hsv2rgb(outputimage); image(im2); imwrite(im2,'HSV_separation.jpg','jpeg'); Based on the (public domain) photo Image:Barns grand tetons.jpg. Code above and resulting output by Mike1024. |