У меня создано 2 файла, один файл .pyx с классом с именем AndorCamersSDK, который имеет функцию с именем LiveAcquisition ().Второй файл, файл .py с классом AndorCameraGUI, который использует Tkinter для создания графического интерфейса.Этот класс имеет функции LivePlot () и RepeatPlot (). Внутри LiveAcquisition () я получаю N номеров кадров, и после получения каждого кадра мне нужно отобразить его с помощью LivePlot () и RepeatPlot ().Без дисплея просто сбор и сохранение 300 кадров занимает 6,2 для исполнения, что меня устраивает.Но когда я начинаю отображать даже 100 кадров, это занимает 54 секунды.Мне нужно приобрести и отобразить в течение 6 секунд на 300 кадров.Как мне решить эту проблему?
Файл 1: .pyx code;Присутствует внутри класса AndorCameraSDK
def LiveAcquisition(self):
for i in range(no_of_frames):
data[i,:,:] = PyArray_NewFromDescr(<PyTypeObject *> np.ndarray, np.dtype('<H'), 2,dims, strides,pBuf, np.NPY_C_CONTIGUOUS, None)
if (i==0):
self.master.LivePlot(data[i,:,:])
elif (i==2) or (i==15) or (i ==65) or (i ==96):
self.master.RepeatPlot(data[i,:,:])
else:
pass
Файл 2: .py code;Ниже функции присутствуют внутри класса с именем AndorCameraGUI
def LivePlot(self,image):
self.count = 0
self.fig = Figure(figsize = (4, 5))
self.fig.patch.set_facecolor('xkcd:light grey') # When this is removed a white color is seen in the background of the figure
self.a = self.fig.add_subplot(111)
self.a.set_xlim([0, self.image_width/int(self.HBin)])
self.a.set_ylim([0, self.image_height/int(self.VBin)])
image = image.transpose()
self.a.imshow(image,'gray')
self.canvas = FigureCanvasTkAgg(self.fig,self.master)
self.canvas.draw()
self.canvas.get_tk_widget().pack(side =LEFT)
self.toolbar = NavigationToolbar2TkAgg(self.canvas,self.master)
self.toolbar.update()
self.canvas._tkcanvas.pack(side = LEFT)# change this to TOP so thee the navigation toolbar on the left down
def RepeatPlot(self,image):
image = image.transpose()
self.a.imshow(image,'gray')
self.canvas.draw()