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!