Info
이 질문은 마감되었습니다. 편집하거나 답변을 올리려면 질문을 다시 여십시오.
problem in the code,getting following error
조회 수: 1 (최근 30일)
이전 댓글 표시
for i=1:256
img_hist(i)=sum(sum(im==(i)));
end
In an assignment A(:) = B, the number of elements in A and B must be the same.
Error in ==> kmeansclustering at 7 img_hist(i)=sum(sum(im==(i)));
댓글 수: 0
답변 (2개)
Image Analyst
2013년 9월 20일
편집: Image Analyst
2013년 9월 20일
Why not just use imhist():
[counts, grayLevels] = imhist(im);
If you have to do it your way, try this and see how the times compare:
im=randi(256, [1000,1000]) - 1;
% Horribly inefficient way of getting histogram:
img_hist = zeros(1,256);
tic;
for i=0:255
img_hist(i+1)=sum(sum(im==i));
end
toc;
% Less inefficient way (more than 10 times faster)
img_hist = zeros(1,256); % Reset
tic
[rows, columns] = size(im);
for col = 1 : columns
for row = 1 : rows
img_hist(im(row,col)+1) = img_hist(im(row,col)+1) + 1;
end
end
toc
% Best way is to use imhist()
tic
img_hist = imhist(im);
toc;
Elapsed time is 0.479380 seconds.
Elapsed time is 0.047586 seconds.
Elapsed time is 0.008468 seconds.
Now, which way do you think is best? That is, simplest and fastest?
댓글 수: 0
Azzi Abdelmalek
2013년 9월 20일
편집: Azzi Abdelmalek
2013년 9월 20일
clear img_hist
for i=1:256
img_hist{i}=sum(sum(im==(i)));
end
댓글 수: 0
이 질문은 마감되었습니다.
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!