Работа с пикселями PyQt5

maroonlok

Новичок
Пользователь
Фев 6, 2023
9
0
1
Всем привет. Есть кусок кода, в котором реализовано нахождение пикселя на картинке и вывода в lable. Может кто подсказать возможна ли реализация выбора не одного пикселя для определения, а допустим квадрата 20x20 пикселей. при этом узнать среднее значение пикселей, а затем вывести это значение в Lable.

Python:
    def point1(self, text, value):
        if text == 'Scene':
            self.lab.setText(f'x1 = {value.x()}, y1 = {value.y()}. Интенсивность: ')

        if text == 'View':
            #self.lab.setText(f'{self.lab.text()} {value}')

Python:
class GraphicsView(QGraphicsView):  # +++
    clicked = pyqtSignal(str, str)
def mousePressEvent(self, event):
super(GraphicsView, self).mousePressEvent(event)
self.setCursor(Qt.DragMoveCursor)

# Получить положение мыши на экране
        pos = event.globalPos()
        image = QApplication.primaryScreen().grabWindow(
int(QApplication.desktop().winId()),
            pos.x() - 23, pos.y() - 23, 47, 47).toImage()
color = image.pixelColor(23, 23)




if color.isValid():
self.clicked.emit('View', color.name())

def mouseReleaseEvent(self, event):
super(GraphicsView, self).mouseReleaseEvent(event)
self.setCursor(Qt.ArrowCursor)

class QS(QtWidgets.QGraphicsScene):

def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)

        width = Settings.NUM_BLOCKS_X * Settings.WIDTH
        height = Settings.NUM_BLOCKS_Y * Settings.HEIGHT
self.setSceneRect(0, 0, width, height)
self.setItemIndexMethod(QtWidgets.QGraphicsScene.NoIndex)

for x in range(0,Settings.NUM_BLOCKS_X+1):
            xc = x * Settings.WIDTH
self.addLine(xc,0,xc,height)

for y in range(0,Settings.NUM_BLOCKS_Y+1):
            yc = y * Settings.HEIGHT
self.addLine(0,yc,width,yc)


class GraphicsScene(QGraphicsScene):
clicked = pyqtSignal(str, QPointF)

def mousePressEvent(self, event):
super(GraphicsScene, self).mousePressEvent(event)
        sp = event.scenePos()
self.clicked.emit('Scene', sp)
 

Форум IT Специалистов