页面不能显示cv2.AccumWarted功能吗?

2024-06-17 13:25:13 发布

您现在位置:Python中文网/ 问答频道 /正文

累加加权(src,dst,alpha[,mask])是一个opencv函数,用于查找运行平均值。我使用这个函数来处理我的相机处理。 当[imshow]使用此功能显示摄像机时,此功能完全可以正常工作。 但是当[Qimage]使用它来显示时,它的工作原理不同 整个功能代码是相同的。唯一的区别是imshow和Qimage。 这是否意味着qimage不支持cv2.累加器加权

在pyqt5中

    qt_image2 = QtGui.QImage(color_lsci_image2.data,
                                         width,
                                         height,
                                         color_lsci_image2.strides[0],
                                         QtGui.QImage.Format_RGB888)

    self.VideoSignal2.emit(qt_image2)


class ImageViewer(QtWidgets.QWidget):
    def __init__(self, parent=None):
        super(ImageViewer, self).__init__(parent)
        self.image = QtGui.QImage()
        self.setAttribute(QtCore.Qt.WA_OpaquePaintEvent)

    def paintEvent(self, event):
        painter = QtGui.QPainter(self)
        painter.drawImage(0, 0, self.image)
        self.image = QtGui.QImage()

    def initUI(self):
        self.setWindowTitle('viwer')

    @QtCore.pyqtSlot(QtGui.QImage)
    def setImage(self, image):
        if image.isNull():
            print("no comera!")

        self.image = image
        if image.size() != self.size():        
            self.setFixedSize(image.size())
        self.update()


    thread = QtCore.QThread()
    thread.start()
    vid = ShowVideo()
    vid.moveToThread(thread)

    image_viewer1 = ImageViewer()
    image_viewer2 = ImageViewer()
    vid.VideoSignal1.connect(image_viewer1.setImage)
    vid.VideoSignal2.connect(image_viewer2.setImage)

    push_button1 = QtWidgets.QPushButton('Start')
    push_button1.clicked.connect(vid.startVideo) 

在python cv2中

def running_avg(input_vid,output_vid,power):
# cv2.accumulateWeighted(src, dst, alpha[, mask]) is opencv function to find running average
# when alpha raise, function update speed (how fast the accumulator “forgets” about earlier images).
    temp = cv2.accumulateWeighted(input_vid,output_vid,1/(power+1))
    run_avg_video = cv2.convertScaleAbs(temp)
    return run_avg_video

color_lsci_image2 = running_avg(color_lsci_image,buffer_vid,fps)
color_lsci_image2 = cv2.bitwise_not(color_lsci_image2)

color_lsci = cv2.resize(color_lsci_image2, None, fx=0.5, fy= 0.5, interpolation=cv2.INTER_AREA)

cv2.imshow('gray',raw_out)
cv2.imshow('color_lsci_image',color_lsci)

Tags: imageself功能alphadefcv2coloravg