Thanks for the skimage hint! I'll try it out...

Am Mittwoch, 29. März 2017 06:23:31 UTC+2 schrieb Vincent Le Saux:
>
> Hi,
>
> IsoCurveItem is know to be slow (look at the source code). You have two 
> possibilities : 
>     - write another implementation more efficient (and suggest it on 
> github)
>     - use another library for the computation of the isolines. Skimage is 
> a good candidate since the method is written in cython.
>
> I personnaly chose the second solution for my app (do not have the time to 
> write annother method), and it work perfectly. I have observed a nice 
> speed-up (x10 to x100) compared to the implementation of pyqtgraph.
>
> Regards,
>
> Vincent
>
> Le vendredi 17 mars 2017 10:44:33 UTC+1, [email protected] a écrit :
>>
>>
>> Hi,
>>
>> I have an ImageView which resides in a PlotItem (for the grid) and want 
>> to draw a number of IsoCurveItems on the ImageItem like in the IsoCurveItem 
>> example file. The image is about 1000 x 1000 px. Adding the IsoCurveItems 
>> seems to be very slow. I put a 
>> QApplication.processEvents()
>> in the loop and can literally watch the curves appear one after another. 
>> Is there a way to speed things up for larger number of curves?
>>
>> Thanks...
>>
>> Here is some test code:
>> from pyqtgraph.Qt import QtGui, QtCore, QtWidgets
>> import numpy as np
>> import pyqtgraph as pg
>>
>> app = QtGui.QApplication([])
>>
>> m = n = 1000
>> x, y = np.meshgrid(range(m), range(n))
>> data = (x - m / 2) ** 2 + (y - n / 2) ** 2
>>
>> win = pg.GraphicsWindow()
>> vb = win.addViewBox()
>> img = pg.ImageItem(data)
>> vb.addItem(img)
>>
>> for level in np.linspace(data.min(), data.max(), 11)[1:-1]:
>>     c = pg.IsocurveItem(data=data, level=level, pen=(0, 0, 0))
>>     c.setParentItem(img)
>>     QtWidgets.QApplication.processEvents()
>>
>> if __name__ == '__main__':
>>     app.exec_()
>>
>>
>>

-- 
You received this message because you are subscribed to the Google Groups 
"pyqtgraph" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/pyqtgraph/3d6eb959-d4f8-484b-b7ff-002bfd493553%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to