Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>I tired your update code and it worked fine. Here is exactly what I am trying:</p> <pre><code>import PIL from PIL import Image from matplotlib import pyplot as plt im = Image.open('./color_gradient.png') w, h = im.size colors = im.getcolors(w*h) def hexencode(rgb): r=rgb[0] g=rgb[1] b=rgb[2] return '#%02x%02x%02x' % (r,g,b) for idx, c in enumerate(colors): plt.bar(idx, c[0], color=hexencode(c[1])) plt.show() </code></pre> <p><strong>Update:</strong></p> <p>I think matplotlib is trying to put a black boarder around every bar? If there are to many bars, the bar is to thin to have color? If you have the toolbar, you can zoom in on the plot and see that the bars do indeed have color. So, if you set the edge color by:</p> <pre><code>for idx, c in enumerate(colors): plt.bar(idx, c[0], color=hexencode(c[1]),edgecolor=hexencode(c[1])) </code></pre> <p>It works!</p> <p>Image to be processed: <img src="https://i.stack.imgur.com/I8dhT.jpg" alt="enter image description here"></p> <p>Result: <img src="https://i.stack.imgur.com/XC714.png" alt="enter image description here"></p> <p><strong>Profiling</strong><br> <em>Sorted by tottime:</em></p> <pre><code> ncalls tottime percall cumtime percall filename:lineno(function) 1 23.424 23.424 24.672 24.672 {built-in method mainloop} 460645 8.626 0.000 8.626 0.000 {numpy.core.multiarray.array} 22941 7.909 0.000 18.447 0.001 C:\Python27\lib\site-packages\matplotlib\artist.py:805(get_aliases) 6814123 3.900 0.000 3.900 0.000 {method 'startswith' of 'str' objects} 22941 2.244 0.000 2.244 0.000 {dir} 276714 2.140 0.000 2.140 0.000 C:\Python27\lib\weakref.py:243(__init__) 4336835 2.029 0.000 2.029 0.000 {getattr} 1927044 1.962 0.000 3.027 0.000 C:\Python27\lib\site-packages\matplotlib\artist.py:886(is_alias) 114811 1.852 0.000 3.883 0.000 C:\Python27\lib\site-packages\matplotlib\colors.py:317(to_rgba) 69559 1.653 0.000 2.841 0.000 C:\Python27\lib\site-packages\matplotlib\path.py:86(__init__) 68869 1.425 0.000 11.700 0.000 C:\Python27\lib\site-packages\matplotlib\patches.py:533(_update_patch_transform) 161205 1.316 0.000 1.618 0.000 C:\Python27\lib\site-packages\matplotlib\cbook.py:381(is_string_like) 1 1.232 1.232 1.232 1.232 {gc.collect} 344698 1.116 0.000 1.513 0.000 C:\Python27\lib\site-packages\matplotlib\cbook.py:372(iterable) 22947 1.111 0.000 3.768 0.000 {built-in method draw_path} 276692 1.024 0.000 3.164 0.000 C:\Python27\lib\site-packages\matplotlib\transforms.py:80(__init__) 2 1.021 0.510 1.801 0.900 C:\Python27\lib\site-packages\matplotlib\colors.py:355(to_rgba_array) 22947 0.818 0.000 14.677 0.001 C:\Python27\lib\site-packages\matplotlib\patches.py:371(draw) 183546/183539 0.793 0.000 2.030 0.000 C:\Python27\lib\site-packages\matplotlib\units.py:117(get_converter) 138006 0.756 0.000 1.267 0.000 C:\Python27\lib\site-packages\matplotlib\transforms.py:126(set_children) </code></pre> <p><em>Sorted by Cumulative Time</em> </p> <pre><code>ncalls tottime percall cumtime percall filename:lineno(function) 1 0.001 0.001 84.923 84.923 C:\Python27\test.py:23(imageProcess) 1 0.013 0.013 44.079 44.079 C:\Python27\lib\site-packages\matplotlib\pyplot.py:2080(bar) 1 0.286 0.286 43.825 43.825 C:\Python27\lib\site-packages\matplotlib\axes.py:4556(bar) 1 0.000 0.000 40.533 40.533 C:\Python27\lib\site-packages\matplotlib\pyplot.py:123(show) 1 0.000 0.000 40.533 40.533 C:\Python27\lib\site-packages\matplotlib\backend_bases.py:69(__call__) 22943 0.171 0.000 24.964 0.001 C:\Python27\lib\site-packages\matplotlib\patches.py:508(__init__) 1 0.000 0.000 24.672 24.672 C:\Python27\lib\site-packages\matplotlib\backends\backend_tkagg.py:68(mainloop) 1 0.000 0.000 24.672 24.672 C:\Python27\lib\lib-tk\Tkinter.py:323(mainloop) 1 23.424 23.424 24.672 24.672 {built-in method mainloop} 22947 0.499 0.000 24.654 0.001 C:\Python27\lib\site-packages\matplotlib\patches.py:55(__init__) 22941 0.492 0.000 20.180 0.001 C:\Python27\lib\site-packages\matplotlib\artist.py:1136(setp) 22941 0.135 0.000 18.730 0.001 C:\Python27\lib\site-packages\matplotlib\artist.py:788(__init__) 22941 7.909 0.000 18.447 0.001 C:\Python27\lib\site-packages\matplotlib\artist.py:805(get_aliases) 72/65 0.071 0.001 17.118 0.263 {built-in method call} 24/12 0.000 0.000 17.095 1.425 C:\Python27\lib\lib-tk\Tkinter.py:1405(__call__) 22941 0.188 0.000 16.647 0.001 C:\Python27\lib\site-packages\matplotlib\axes.py:1476(add_patch) 1 0.000 0.000 15.861 15.861 C:\Python27\lib\site-packages\matplotlib\backends\backend_tkagg.py:429(show) 1 0.000 0.000 15.861 15.861 C:\Python27\lib\lib-tk\Tkinter.py:909(update) 1 0.000 0.000 15.846 15.846 C:\Python27\lib\site-packages\matplotlib\backends\backend_tkagg.py:219(resize) 1 0.000 0.000 15.503 15.503 C:\Python27\lib\site-packages\matplotlib\backends\backend_tkagg.py:238(draw) </code></pre> <p>It seems that all the time is spent in matplotlib. If you want to speed it up, you can either find a different plotting tool, reduce the number of 'bars', try doing it yourself with rectangle on a canvas?</p> <p>Timing: </p> <ol> <li>Posted code above: 75s</li> <li>Drawing a line for each one i.e. plt.plot([n,n],[0,count],etc..): 95s</li> </ol>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload