reconstruction of a color
Show older comments
Hi suppose I have an image. It shows 2 colors visually.I need two know whether there is actually 2 colors or many different colors. I have used the following code.but perhaps Im not getting the right answer:
Here I seems to have two bars of two colors.
I1=rgb2hsv(I);
color=zeros([30,50,3],'double');
r=size(I1,1); for r=1:size(I1,1); for c=1:size(I1,2)
h=num2str(I1(r,c,1));
s=num2str(I1(r,c,2));
v=num2str(I1(r,c,3));
filename=strcat(path,num2str(r),'\',num2str(r),num2str(c),'h=',h,'s=',s,'v=',v,'.jpg');
color(:,:,1)=I1(r,c,1);
color(:,:,2)=I1(r,c,2);
color(:,:,3)=I1(r,c,1);
hsvcolor=hsv2rgb(double(color));
imwrite(hsvcolor,filename,'jpg');
end
end
am i doing the right process?If not what is necessary for correction?
Answers (2)
Walter Roberson
on 15 May 2011
T = reshape(I1,[],3);
U = unique(T,'rows');
if size(U,1) > 2
disp('there were more than 2 colors');
end
Though this does depend upon what you mean by "color"; possibly you just want to compare hues?
1 Comment
Mohammad Golam Kibria
on 15 May 2011
Bjorn Gustavsson
on 16 May 2011
0 votes
Maybe your problem can be trivially solved with any of these FEX contributions: http://www.mathworks.com/matlabcentral/fileexchange/20757-drawing-color-histograms-and-color-clouds http://www.mathworks.com/matlabcentral/fileexchange/28681-imhistogram http://www.mathworks.com/matlabcentral/fileexchange/4875-color-image-histogram
HTH, Bjeorn
Categories
Find more on Image Arithmetic in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!