How to correct the assignment Error?
이전 댓글 표시
I have to run the K-means clustering program using matlab.
im = imread('D:\lena256.jpg');
k=5;
%histogram calculation
img_hist = zeros(256,1);
hist_value = zeros(256,1);
for i=1:256
img_hist(i)=sum(sum(im==(i-1)));
end
Run above code the following error occurred.
??? In an assignment A(:) = B, the number of elements in A and B
must be the same.
Error in ==> kmeansclustering at 10
img_hist(i)=sum(sum(im==(i-1)));
Error in ==> main at 5
[clusters, result_image, clusterized_image] = kmeansclustering(im,k);
How do I solve this problem?
댓글 수: 3
Please edit your post. It makes it easier for people to understand your question, and shows a modicum of interest on your part.
Your problem is that
img_hist(i)
and
sum(sum(im==(i-1)))
are of different sizes.
Matt J
2012년 12월 14일
Incidentally, why not use HISTC to generate the histogram? Why re-invent that wheel with for-loops?
PRIYANGA
2012년 12월 14일
채택된 답변
추가 답변 (1개)
Jürgen
2012년 12월 14일
0 개 추천
Hi,
there is a function: imhist(I) , quite useful for this work, + if you want to calculate the hist by summing for each value 0=>255 you will get a array with a lenght of 256 not 256*256
regards,J
댓글 수: 1
Jürgen
2012년 12월 14일
and indeed the comment of JL above is also a good point: the image could be a (VertRes, HorRes,3) matrix
카테고리
도움말 센터 및 File Exchange에서 k-Means and k-Medoids Clustering에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!