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.contentsMargins()
label.setText(
"Content Margins : "
+
str
(value))
App
=
QApplication(sys.argv)
window
=
Window()
sys.exit(App.
exec
())