from PyQt5 import QtCore, QtGui
import cv2
[docs]
class ResizeImage(object):
def __init__(self, MainWindow):
"""
Initial class setting ratio image To solve the ratio image problem where using the various of camera type.h
Args:
MainWindow (): Is the parent class to access the user interface widget in this application.
"""
self.parent = MainWindow
[docs]
def resize_original_image(self, image):
"""
resize image for showing on Label original image user interface
Args:
image (): original input image
Returns:
Resized image.
"""
h, w = image.shape[:2]
r = 400 / float(w)
hi = round(h * r)
self.parent.ui.windowOri.setMinimumSize(QtCore.QSize(400, hi))
self.parent.ui.labelImagerecenter.setMinimumSize(QtCore.QSize(400, hi))
resized_image = cv2.resize(
image, (400, hi), interpolation=cv2.INTER_AREA)
return resized_image
[docs]
def resize_result_image(self, image, width_image):
"""
Resize result image and the label result image based on width given.
Args:
image ():
width_image ():
Returns:
None.
"""
h, w = image.shape[:2]
r = width_image / float(w)
hi2 = round(h * r)
self.parent.ui.windowResult.setGeometry(
QtCore.QRect(10, 0, width_image, hi2))
self.parent.ui.PlussIcon.setGeometry(
QtCore.QRect(10, 10, width_image, hi2))
if self.parent.ui.btn_Panorama.isChecked():
blue = QtGui.QPixmap(width_image, hi2)
blue.fill(QtCore.Qt.transparent)
self.parent.ui.PlussIcon.setPixmap(blue)
else:
blue = QtGui.QPixmap(width_image, hi2)
blue.fill(QtCore.Qt.transparent)
p = QtGui.QPainter(blue)
pen = QtGui.QPen(QtGui.QBrush(QtGui.QColor(0, 255, 0)), 3)
p.setPen(pen)
p.drawLine(round((width_image / 2) - 10), round(hi2 / 2),
round((width_image / 2) + 10), round(hi2 / 2))
p.drawLine(
round(
width_image / 2),
round(
(hi2 / 2) - 10),
round(
width_image / 2),
round(
(hi2 / 2) + 10))
p.end()
self.parent.ui.PlussIcon.setPixmap(blue)
resized_image = cv2.resize(
image, (width_image, hi2), interpolation=cv2.INTER_AREA)
return resized_image