reconstruction of a color
1 次查看(过去 30 天)
显示 更早的评论
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?
0 个评论
回答(2 个)
Walter Roberson
2011-5-15
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?
Bjorn Gustavsson
2011-5-16
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
0 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!