Thank you:-)

Patrick kirjutas kolmapäev, 14. oktoober 2020 kl 05:13:41 UTC+2:

> Hi,
>
> Problem is easy fixed, in your ImageDraw.__init__() change:
> self.axisOrder = 'row-major'
> to
> self.axisOrder = 'col-major'
>
> Patrick
>
> On Tuesday, 13 October 2020 at 9:34:01 pm UTC+10:30 [email protected] 
> wrote:
>
>>
>> Hello!
>>
>> I'm trying to draw on an ImageItem with a DrawKernel, but it's weird, 
>> when I drag the mouse right the drawing line goes up and when I drag it 
>> down it paints to the left:-D Here's my code. I would really appreciate 
>> help as I have no idea what I'm doing wrong:-D
>>
>> Maria
>>
>> import sys, os, pathlib, warnings, datetime, tempfile, glob, time
>> import gc
>> from natsort import natsorted
>> from tqdm import tqdm
>>
>> from PyQt5 import QtGui, QtCore, Qt, QtWidgets
>> import pyqtgraph as pg
>> from pyqtgraph import GraphicsScene
>>
>> import numpy as np
>> import cv2
>> from scipy.ndimage import gaussian_filter
>>
>> import sys
>>
>> import h5py
>>
>> import time
>>
>> from matplotlib import image
>>
>> from pyqtgraph import Point
>>
>> class MainW(QtGui.QMainWindow):
>>     def __init__(self, image=None):
>>         super(MainW, self).__init__()
>>
>>         pg.setConfigOptions(imageAxisOrder="col-major")
>>         self.setGeometry(50, 50, 1200, 1000)
>>
>>         self.setStyleSheet("QMainWindow {background: 'black';}")
>>
>>         self.cwidget = QtGui.QWidget(self)
>>         self.l0 = QtGui.QGridLayout()
>>         self.cwidget.setLayout(self.l0)
>>         self.setCentralWidget(self.cwidget)
>>
>>         self.win = pg.GraphicsLayoutWidget()
>>         #self.l0.addWidget(self.win, 0,3, b, 20)
>>
>>         self.l0.addWidget(self.win)
>>
>>
>>         #self.show()
>>
>>         self.load_image()
>>
>>         self.make_viewbox()
>>
>>         self.set_image()
>>
>>         self.win.show()
>>
>>     def load_image(self):
>>         
>> filename='C:/Users/koester_lab/Documents/Maria/registered/fish2_6dpf_medium_aligned.h5'
>>         filename_='C:/Users/koester_lab/Documents/im.jpg'
>>         with h5py.File(filename, "r") as f:
>>             # List all groups
>>             print("Keys: %s" % f.keys())
>>             start=time.time()
>>             data=f['data'][100,10,:,:]
>>             end=time.time()
>>             print('Time to load file: ',end-start)
>>             print(data.shape)
>>         self.data=np.array(data).astype('float64')
>>         #self.data=image.imread(filename_)
>>         print(np.max(self.data))
>>         print(np.min(self.data))
>>         self.data *= 255.0/self.data.max()
>>         print(np.max(self.data))
>>         print(np.min(self.data))
>>
>>     def set_image(self):
>>         self.img.setImage(self.data, autoLevels=False, 
>> lut=None,levels=[0,255])
>>         self.show()
>>
>>     def make_viewbox(self):
>>         self.p0 = pg.ViewBox()
>>         self.brush_size=3
>>         self.win.addItem(self.p0, 0, 0)
>>         self.p0.setMenuEnabled(False)
>>         self.p0.setMouseEnabled(x=True, y=True)
>>         self.p0.setAspectLocked(True)
>>         self.img = ImageDraw(viewbox=self.p0, parent=self)
>>         self.img.autoDownsample = False
>>         self.p0.scene().contextMenuItem = self.p0
>>         #self.p0.setMouseEnabled(x=False,y=False)
>>         self.Ly,self.Lx = 512,512
>>         kern = 100*np.ones((10,10))
>>         self.img.setDrawKernel(kern, mask=kern, center=(1,1), mode='add')
>>         self.p0.addItem(self.img)
>>
>>
>>
>> class ImageDraw(pg.ImageItem):
>>     """
>>     **Bases:** :class:`GraphicsObject <pyqtgraph.GraphicsObject>`
>>     GraphicsObject displaying an image. Optimized for rapid update (ie 
>> video display).
>>     This item displays either a 2D numpy array (height, width) or
>>     a 3D array (height, width, RGBa). This array is optionally scaled (see
>>     :func:`setLevels <pyqtgraph.ImageItem.setLevels>`) and/or colored
>>     with a lookup table (see :func:`setLookupTable 
>> <pyqtgraph.ImageItem.setLookupTable>`)
>>     before being displayed.
>>     ImageItem is frequently used in conjunction with
>>     :class:`HistogramLUTItem <pyqtgraph.HistogramLUTItem>` or
>>     :class:`HistogramLUTWidget <pyqtgraph.HistogramLUTWidget>` to provide 
>> a GUI
>>     for controlling the levels and lookup table used to display the image.
>>     """
>>
>>
>>
>>     def __init__(self, image=None, viewbox=None, parent=None, **kargs):
>>         super(ImageDraw, self).__init__()
>>
>>         self.autoDownsample = False
>>         self.axisOrder = 'row-major'
>>         self.removable = False
>>
>>         self.parent = parent
>>         #kernel[1,1] = 1
>>         #self.setDrawKernel(kernel_size=self.parent.brush_size)
>>
>>     def mouseDragEvent(self, ev):
>>         if ev.button() != QtCore.Qt.LeftButton:
>>             ev.ignore()
>>             return
>>         elif self.drawKernel is not None:
>>             ev.accept()
>>             self.drawAt(ev.pos(), ev)
>>
>>     def mouseClickEvent(self, ev):
>>         print(ev.pos())
>>
>>
>>
>> def run(image=None):
>>     # Always start by initializing Qt (only once per application)
>>     warnings.filterwarnings("ignore")
>>     app = QtGui.QApplication(sys.argv)
>>
>>     main_window=MainW(image=image)
>>     main_window.show()
>>     ret = app.exec_()
>>     #sys.exit(ret)
>>
>> run()
>>
>>

-- 
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/df28fbf0-2f39-4938-84b0-724189c4e684n%40googlegroups.com.

Reply via email to