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!