[英]How to scale QImage to a small size with good quality
我有八个不同的视频。 我正在尝试将这些视频拆分为 window。我的视频质量是 720p。 但我需要适应小框架。 当我使用p = convert_to_Qt_format.scaled(256, 450, Qt.KeepAspectRatio)
将视频调整为 256x450 时,我无法获得高质量的视频。 我怎样才能调整好质量。 你对我有什么建议?
@pyqtSlot(list)
def update_image(self, cv_img = []):
"""Updates the image_label with a new opencv image"""
qt_img = []
for i in range(0,8):
# qt_img.append(0)
qt_img.append(self.convert_cv_qt(cv_img[i]))
self.ui.video1.setPixmap(qt_img[0])
self.ui.video2.setPixmap(qt_img[1])
self.ui.video3.setPixmap(qt_img[2])
self.ui.video4.setPixmap(qt_img[3])
self.ui.video5.setPixmap(qt_img[4])
self.ui.video6.setPixmap(qt_img[5])
self.ui.video7.setPixmap(qt_img[6])
self.ui.video8.setPixmap(qt_img[7])
def convert_cv_qt(self, cv_img):
"""Convert from an opencv image to QPixmap"""
rgb_image = cv2.cvtColor(cv_img, cv2.COLOR_BGR2RGB)
h, w, ch = rgb_image.shape
bytes_per_line = ch * w
convert_to_Qt_format = QtGui.QImage(rgb_image.data, w, h, bytes_per_line, QtGui.QImage.Format_RGB888)
p = convert_to_Qt_format.scaled(256, 450, Qt.KeepAspectRatio)
return QPixmap.fromImage(p)
请注意, QImage::scaled()
有一个可选参数transformMode
,默认为Qt::FastTransformation
。 如果你传递Qt::SmoothTransformation
结果应该更好,因为使用了双线性过滤。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.