i&#39;ll take a look at them over the next few days and see what i can hack out. <br><br>Chris<br><br><div class="gmail_quote">On Mon, May 4, 2009 at 3:18 PM, David Huard <span dir="ltr">&lt;<a href="mailto:david.huard@gmail.com">david.huard@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br><br><div class="gmail_quote"><div class="im">On Mon, May 4, 2009 at 7:00 AM,  <span dir="ltr">&lt;<a href="mailto:josef.pktd@gmail.com" target="_blank">josef.pktd@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div>On Mon, May 4, 2009 at 12:31 AM, Chris Colbert &lt;<a href="mailto:sccolbert@gmail.com" target="_blank">sccolbert@gmail.com</a>&gt; wrote:<br>
&gt; this actually sort of worked. Thanks for putting me on the right track.<br>
&gt;<br>
&gt; Here is what I ended up with.<br>
&gt;<br>
&gt; this is what I ended up with:<br>
&gt;<br>
&gt; def hist3d(imgarray):<br>
&gt;     histarray = N.zeros((16, 16, 16))<br>
&gt;     temp = imgarray.copy()<br>
&gt;     bins = N.arange(0, 257, 16)<br>
&gt;     histarray = N.histogramdd((temp[:,:,0].ravel(), temp[:,:,1].ravel(),<br>
&gt; temp[:,:,2].ravel()), bins=(bins, bins, bins))[0]<br>
&gt;     return histarray<br>
&gt;<br>
&gt; this creates a 3d histogram of rgb image values in the range 0,255 using 16<br>
&gt; bins per component color.<br>
&gt;<br>
&gt; on a 640x480 image, it executes in 0.3 seconds vs 4.5 seconds for a for<br>
&gt; loop.<br>
&gt;<br>
&gt; not quite framerate, but good enough for prototyping.<br>
&gt;<br>
<br>
</div>I don&#39;t think your copy to temp is necessary, and use reshape(-1,3) as<br>
in the example of Stefan, which will avoid copying the array 3 times.<br>
<br>
If you need to gain some more speed, then rewriting histogramdd and<br>
removing some of the unnecessary checks and calculations looks<br>
possible.</blockquote></div><div><br>Indeed, the strategy used in the histogram function is faster than the one used in the histogramdd case, so porting one to the other should speed things up. <br><font color="#888888"><br>
David<br> <br></font></div><div class="im"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
<div><div></div><div>Josef<br>
_______________________________________________<br>
Numpy-discussion mailing list<br>
<a href="mailto:Numpy-discussion@scipy.org" target="_blank">Numpy-discussion@scipy.org</a><br>
<a href="http://mail.scipy.org/mailman/listinfo/numpy-discussion" target="_blank">http://mail.scipy.org/mailman/listinfo/numpy-discussion</a><br>
</div></div></blockquote></div></div><br>
<br>_______________________________________________<br>
Numpy-discussion mailing list<br>
<a href="mailto:Numpy-discussion@scipy.org">Numpy-discussion@scipy.org</a><br>
<a href="http://mail.scipy.org/mailman/listinfo/numpy-discussion" target="_blank">http://mail.scipy.org/mailman/listinfo/numpy-discussion</a><br>
<br></blockquote></div><br>