42 lines
1.4 KiB
Python
42 lines
1.4 KiB
Python
from PyQt6.QtWidgets import QVBoxLayout, QLabel, QCheckBox
|
|
import cv2
|
|
|
|
from .ImageParameterDialog import ImageParameterDialog
|
|
from .. import ImageProcessingWorker
|
|
|
|
class FlipDialog(ImageParameterDialog):
|
|
def __init__(self, image):
|
|
super().__init__(image, ImageProcessingWorker.ImageProcessingWorker)
|
|
self.setWindowTitle("Flip Image")
|
|
self.layout = QVBoxLayout()
|
|
|
|
self.horizontal_flip_checkbox = QCheckBox("Flip Horizontally")
|
|
self.horizontal_flip_checkbox.stateChanged.connect(self.update)
|
|
|
|
self.vertical_flip_checkbox = QCheckBox("Flip Vertically")
|
|
self.vertical_flip_checkbox.stateChanged.connect(self.update)
|
|
|
|
self.layout.addWidget(QLabel("Select flip options:"))
|
|
self.layout.addWidget(self.horizontal_flip_checkbox)
|
|
self.layout.addWidget(self.vertical_flip_checkbox)
|
|
self.layout.addWidget(self.button_box)
|
|
|
|
self.setLayout(self.layout)
|
|
|
|
def update(self):
|
|
self.send_to_process({
|
|
'flip_horizontal': self.horizontal_flip_checkbox.isChecked(),
|
|
'flip_vertical': self.vertical_flip_checkbox.isChecked()
|
|
})
|
|
|
|
def process_image(self, image, values):
|
|
if values['flip_horizontal']:
|
|
image = cv2.flip(image, 1)
|
|
if values['flip_vertical']:
|
|
image = cv2.flip(image, 0)
|
|
|
|
return image
|
|
|
|
@classmethod
|
|
def dialog_name(cls):
|
|
return "Flip Image" |