PyQtGraph - Obtendo a geometria do quadro da visualização da imagem
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 :
As postagens do blog Acervo Lima te ajudaram? Nos ajude a manter o blog no ar!
Faça uma doação para manter o blog funcionando.
70% das doações são no valor de R$ 5,00...
Diógenes Lima da Silva