def drawZoom(self, qp, overlay): # Zoom disabled? if not self.zoom: return # No image if self.image.isNull() or not self.w or not self.h: return # No mouse if not self.mousePosOrig: return # Abbrevation for the zoom window size zoomSize = self.zoomSize # Abbrevation for the mouse position mouse = self.mousePosOrig # The pixel that is the zoom center pix = self.mousePosScaled # The size of the part of the image that is drawn in the zoom window selSize = zoomSize / (self.zoomFactor * self.zoomFactor) # The selection window for the image sel = QtCore.QRectF(pix.x() - selSize / 2, pix.y() - selSize / 2, selSize, selSize) # The selection window for the widget view = QtCore.QRectF(mouse.x() - zoomSize / 2, mouse.y() - zoomSize / 2, zoomSize, zoomSize) if overlay: overlay_scaled = overlay.scaled(self.image.width(), self.image.height()) else: overlay_scaled = QtGui.QImage(self.image.width(), self.image.height(), QtGui.QImage.Format_ARGB32_Premultiplied) # Show the zoom image qp.save() qp.drawImage(view, self.image, sel) qp.setOpacity(self.transp) qp.drawImage(view, overlay_scaled, sel) qp.restore()
def getBoundingBox(self, obj): bbox = QtCore.QRectF(obj.bbox[0], obj.bbox[1], obj.bbox[2], obj.bbox[3]) bboxVis = QtCore.QRectF(obj.bboxVis[0], obj.bboxVis[1], obj.bboxVis[2], obj.bboxVis[3]) return bbox, bboxVis