<br><br><div class="gmail_quote">On Sun, Jan 15, 2012 at 10:45 AM,  <span dir="ltr"><<a href="mailto:apo@pdauf.de">apo@pdauf.de</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Counting the Colors of RGB-Image,<br>
nameit im0 with im0.shape = 2500,3500,3<br>
with this code:<br>
<br>
tab0 = zeros( (256,256,256) , dtype=int)<br>
tt = im0.view()<br>
tt.shape = -1,3<br>
for r,g,b in tt:<br>
 tab0[r,g,b] += 1<br>
<br>
Question:<br>
<br>
Is there a faster way in numpy to get this result?<br>
<br>
<br>
MfG elodw<br></blockquote><div><br>Assuming that your image is made up of integer values (which I guess they'd have to be if you're indexing into `tab0`), then you could write:<br><br>>>> rgb_unique = set(tuple(rgb) for rgb in tt)<br>
<br>I'm not sure if it's any faster than your loop, but I would assume it is.<br><br>-Tony<br></div></div>