0

我正在尝试将 simplecv 集成到 pyqt4 并取得了一些成功。我能够通过 simplecv 在 pyqt4 中看到网络摄像头捕获,我可以使用 simplecv 修改图像,它在 pyqt4 中显示正常,但是当我尝试向图像添加几何图形或文本时,它没有在 pyqt4 中显示。如果我自己运行 simpleCV 代码,它可以正常工作。有人可以帮我理解为什么它不起作用吗?顺便说一句,正如你所见,我是 pyqt4 和 simpleCV 的新手。查看我目前拥有的代码。

#!/usr/bin/env python
import os
import sys
import signal
from PyQt4 import uic, QtGui, QtCore

from webcamGUI3 import *
from SimpleCV import *

class Webcam(QtGui.QMainWindow):
    def __init__(self, parent=None):

        QtGui.QWidget.__init__(self,parent)        
        self.MainWindow = Ui_MainWindow()
        self.MainWindow.setupUi(self)
        self.webcam = Camera(0,{ "width": 640, "height": 480 })

        self.timer = QtCore.QTimer()

        self.connect(self.timer, QtCore.SIGNAL('timeout()'), self.show_frame)

        self.timer.start(1);

    def show_frame(self):
        ipl_image = self.webcam.getImage()
        ipl_image.dl().circle((150, 75), 50, Color.RED, filled = True)
        data = ipl_image.getBitmap().tostring()
        image = QtGui.QImage(data, ipl_image.width, ipl_image.height, 3 * ipl_image.width, QtGui.QImage.Format_RGB888)
        pixmap = QtGui.QPixmap()
        pixmap.convertFromImage(image.rgbSwapped())
        self.MainWindow.lblWebcam.setPixmap(pixmap)

if __name__ == "__main__":
    app = QtGui.QApplication(sys.argv)
    webcam = Webcam()
    webcam.show()
    app.exec_()

有任何想法吗?

4

1 回答 1

0

我有我的朋友,很简单你只需添加

  ipl_image = ipl_image.applyLayers()

看:

    ipl_image = ipl_image = self.webcam.getImage().binarize().invert()
    ipl_image.drawRectangle(30,50,100,100,color=Color.RED,width=3)
    ipl_image.drawText('ola galera',80,190,fontsize=50)
    ipl_image = ipl_image.applyLayers()


    data = ipl_image.getBitmap().tostring()
    image = QtGui.QImage(data, ipl_image.width, ipl_image.height, 3 * ipl_image.width, QtGui.QImage.Format_RGB888)
    pixmap = QtGui.QPixmap()
    pixmap.convertFromImage(image.rgbSwapped())
    self.MainWindow.label.setPixmap(pixmap)
于 2013-06-28T00:14:59.893 回答