前提・実現したいこと
PyQtでビデオキャプチャをするプログラムを作っています。
発生している問題・エラーメッセージ
Windows10ではカメラからの画像が表示されるのですが、Ubuntu Linux上で同じコードを動かすとSegmentention Fault となってしまいます。
該当のソースコード
python
1from PyQt5 import QtCore, QtGui, QtWidgets 2import cv2 3 4 5class MainWindow(QtWidgets.QMainWindow): 6 def __init__(self, parent=None): 7 super(MainWindow, self).__init__(parent) 8 9 thread = CapThread(self) 10 thread.start() 11 12class CapThread(QtCore.QThread): 13 14 def run(self): 15 16 capture = cv2.VideoCapture(0) 17 18 while True: 19 ret, frame = capture.read() 20 cv2.imshow('frame',frame) 21 if cv2.waitKey(1) & 0xFF == ord('q'): 22 break 23 24 25if __name__ == "__main__": 26 import sys 27 app = QtWidgets.QApplication(sys.argv) 28 w = MainWindow() 29 w.show() 30 sys.exit(app.exec_())
試したこと
Pythonのバージョンを変えてみましたが、LinuxではSegfaultします。
多分、Threadの使い方に問題があって、Win10ではたまたま動いているように思います。
MainWindowにはボタンをつけて録画等のスレッドを動かすつもりです。
補足情報(FW/ツールのバージョンなど)
Windows10/Python3.6.5 Ubuntu Linux 18.10/Python3.6.7
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/02/15 07:56
2019/02/15 08:04
2019/02/18 01:39
2019/02/18 23:35 編集
2019/02/18 04:14 編集