O artigo a seguir discute como podemos obter a geometria do quadro do objeto de exibição de imagem no PyQTGaph. A geometria do quadro é a geometria da visualização da imagem correspondente à janela principal, ela descreve a posição e o tamanho da visualização da imagem. PyQtGraph é uma biblioteca Python de interface de usuário e gráfica para funcionalidades comumente necessárias em aplicativos de design e ciências. Ele fornece gráficos rápidos e interativos para a exibição de dados (plotagens, vídeo, etc.). Implementa muitos recursos, como a exibição de dados de imagem 2D e 3D. Para dados 3D, um controle deslizante do eixo z é exibido, permitindo ao usuário selecionar qual quadro será exibido. Exibe o histograma dos dados da imagem com a região móvel que define os níveis de escuro / claro e o gradiente editável fornece uma tabela de pesquisa de cores para referência.

Para criar uma visualização de imagem, ImageView() é usado 

Sintaxe:

imv = pg.ImageView()
 

Para obter a geometria do frame, o método frameGeometry() é usado com o objeto de visualização da imagem. Não leva argumentos e retorna um objeto QRect.



Sintaxe:

imv.frameGeometry()

Implementação:
 

from PyQt5.QtWidgets import *
import sys 
import numpy as np 
import pyqtgraph as pg 
from PyQt5.QtGui import *
from PyQt5.QtCore import *
  
  
class ImageView(pg.ImageView): 
  
    
    
    def __init__(self, *args, **kwargs): 
        pg.ImageView.__init__(self, *args, **kwargs) 
  
class Window(QMainWindow): 
  
    def __init__(self): 
        super().__init__() 
        self.setWindowTitle("PyQtGraph") 
        self.setGeometry(100, 100, 600, 500) 
  
        icon = QIcon("skin.png") 
        self.setWindowIcon(icon) 
        self.UiComponents() 
        self.show() 
        
  
    
    def UiComponents(self): 
        widget = QWidget() 
        label = QLabel("Geeksforgeeks Image View") 
        label.setMinimumWidth(130) 
        label.setWordWrap(True) 
        pg.setConfigOptions(antialias=True) 
        imv = ImageView() 
        img = pg.gaussianFilter(np.random.normal(size=(200, 200)), (5, 5)) * 20 + 100
        img = img[np.newaxis, :, :] 
        decay = np.exp(-np.linspace(0, 0.3, 100))[:, np.newaxis, np.newaxis] 
        data = np.random.normal(size=(100, 200, 200)) 
        data += img * decay 
        data += 2
        sig = np.zeros(data.shape[0]) 
        sig[30:] += np.exp(-np.linspace(1, 10, 70)) 
        sig[40:] += np.exp(-np.linspace(1, 10, 60)) 
        sig[70:] += np.exp(-np.linspace(1, 10, 30)) 
sig = sig[:, np.newaxis, np.newaxis] * 3
        data[:, 50:60, 30:40] += sig 
      imv.setImage(data, xvals=np.linspace(1., 3., data.shape[0])) 
        colors = [ 
            (0, 0, 0), 
            (4, 5, 61), 
            (84, 42, 55), 
            (15, 87, 60), 
            (208, 17, 141), 
            (255, 255, 255) 
        ] 
        cmap = pg.ColorMap(pos=np.linspace(0.0, 1.0, 6), color=colors) 
        imv.setColorMap(cmap) 
        layout = QGridLayout() 
        label.setFixedWidth(130) 
        widget.setLayout(layout) 
        layout.addWidget(label, 1, 0) 
        layout.addWidget(imv, 0, 1, 3, 1) 
        self.setCentralWidget(widget) 
        value = imv.frameGeometry() 
        label.setText("Frame Geometry : " + str(value)) 
  
  
  
App = QApplication(sys.argv) 
window = Window() 
sys.exit(App.exec()) 

Resultado :