2
私はPythonでコーディングしています。python OpenCVセグメンテーションフォールト(コアダンプ)
(ASUSのKV55J | Ubuntuの14.04 |のpython 2.7.6(デフォルト、2015年6月22日、17時五十八分13秒)[GCC 4.8.2] | OpenCVのバージョン '2.4.8')
I私のウェブカメラ(非常に単純なコード)から正常に画像を表示することができますが、マウスが画像(また非常に単純なコード)を渡すときにマウスコールバックを設定しようとすると、大きな問題が発生します。約10/20secondsが失敗するが、私が "Ctrl-c"が押されるまでコールバックにコメントすると機能する)。
なぜそれが起こるのか知っていますか?
は、私はこれを実行し、(私は何もマウスを動かすか押していけない場合でも)、このエラーを得た:私はbegginingでいた[email protected]:~/Desktop/testes_python/gui$ python a_teste_capture.py
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
Left mouse button pushed
Left mouse button pushed
Left mouse button pushed
Left mouse button pushed
Left mouse button pushed
Segmentation fault (core dumped)
最も簡単なコードがあった。
import cv, cv2
def click_and_take_frame(event, x, y, flags, param):
if event == cv2.EVENT_LBUTTONDOWN:
print 'Left mouse button pushed'
def main_function():
camera_device=cv2.VideoCapture(0)
frame_name="Segmentation fault (core dumped) TEST WINDOW"
cv2.namedWindow(frame_name, cv2.WINDOW_AUTOSIZE)
while 1:
(grabbed1, frame1) = camera_device.read()
frame1= cv2.cvtColor(frame1, cv2.CV_8U)
cv2.imshow(frame_name, frame1)
cv2.setMouseCallback(frame_name, click_and_take_frame)
key = cv2.waitKey(1) & 0xFF
cv2.destroyAllWindows() # Closes displayed windows
if __name__ == '__main__':
import sys
main_function()
OS Xでコードを実行するとsegfaultを再現できません。そのプラットフォームで正常に動作するようです。 – Aurelius