2013-12-11 2 views
1

안녕하세요 저는 opencv (버전 2.4.7)를 처음 사용하고 Python 2.7.4에서이 도구를 사용하고 있습니다. 내가 코드도 오류와 달리 잘 작동 명령을opencv : 그리드 및 HIGHGUI 오류가있는 이미지

cam = cv2.VideoCapture(cam_id) 

를 사용할 때마다 난 항상이 오류

HIGHGUI ERROR: V4L/V4L2: VIDIOC_S_CROP

를 얻을. 나는 this wireless camera을 사용하려고하는데 마젠타 색과 녹색의 격자 구조를 가진 이미지를 보여줍니다. 제 질문은 왜 제가이 오류와 이상한 이미지를 얻고 있는지입니다. 이 코드는 다른 시스템에서도 내 시스템 자체에 멋진 이미지를 제공합니다. gstreamer 속성에도 명확한 그림이 있습니다. 코드 :

from cv2 import cv 
import cv2 
import sys 

def main(): 

cam_id = 0 

# parameter 
for i, arg in enumerate(sys.argv): 
    if i == 0: continue 
    else: cam_id = arg 

cam = cv2.VideoCapture(cam_id) 

cv2.namedWindow("window", cv.CV_WINDOW_AUTOSIZE) 

running = True 

while running: 
    try: 
     flag, img = cam.read() 
     if flag: 
      cv2.imshow("window", img) 
      cv2.waitKey(30) 
    except KeyboardInterrupt: 
     running = False 

cv2.destroyWindow("window") 

main()  

답변

1

죄송합니다. 코드를 실행하기 전에 라이브러리를로드해야했습니다. 다음 명령을 사용하면 트릭을 수행해야합니다.

$ LD_PRELOAD=/usr/lib/i386-linux-gnu/libv4l/v4l2convert.so python filename.py

64 비트 시스템의 경우 : 32 비트 시스템의 경우

$ LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libv4l/v4l2convert.so python filename.py

이 다음 작업 명령을 사용하여 파일 v4l2convert.so의 위치를 ​​시도하지 않는 경우,

$ locate v4l2convert.so

출력마다 다른 경로가 표시되므로 다른 경로로 LD_PRELOAD를 시도하십시오.

관련 문제