OpenCV에서 웹캠에서 이미지를 얻지 못할 때의 메모 (Ubuntu16.04)
4797 단어 ubuntu16.04Python3OpenCV
운영 환경
소프트웨어
하드웨어(웹캠)
이 카메라는 빅카메라로 1000엔이었기 때문에 샀다. 정지화면으로 300만 화소. 최근 웹캠은 UVC이기 때문에 우분투에서도 문제없이 사용할 수 있다. 좋아하는 것을 사용하면 좋다고 생각한다.
USB video device class (UVC) | Wikipedia
동작 확인
USB가 인식되는지 확인.
$ lsusb
Bus 001 Device 003: ID 046d:0825 Logitech, Inc. Webcam C270
동영상으로 인식되는지 확인합니다.
$ l /dev/video*
/dev/video0
0ch의 카메라에 액세스하면 좋을 것 같다.
웹캠에서 이미지를 얻는 방법
다음 코드를 적절한 이름으로 저장합니다. 0ch로부터 취득하기 때문에 cv2.VideoCapture(0)
로 하고 있다.
capture.py#!/usr/bin/env python3
# -*-coding: utf-8 -*-
import cv2
import time
def main():
cap = cv2.VideoCapture(0)
while(True):
# Capture frame-by-frame
ret, frame = cap.read()
if ret:
cv2.imshow('frame', frame)
else:
time.sleep(2)
# Display the resulting frame
if cv2.waitKey(20) == 27:
break
# When everything done, release the capture
cap.release()
cv2.destroyAllWindows()
if __name__ == '__main__':
main(args)
다음을 실행하면 웹캠에서 이미지를 얻을 수 있습니다. 런타임에 sudo
를 붙이는 것을 잊지 마십시오.
$ sudo ./capture.py
오류가 발생하여 이미지를 얻지 못할 때
상기에서 그대로 화상을 취득할 수 있으면 문제는 없지만, 이하와 같은 에러가 발생하는 경우가 있다.
X Error: BadDrawable (invalid Pixmap or Window parameter) 9
Major opcode: 62 (X_CopyArea)
Resource id: 0x3600010
해결책 그 1 (저장)
cv2.imshow()
를 그만두고 cv2.imwrite()
를 이용하면 정상적으로 취득할 수 있을 것. 그러나 불편하다.
해결책 그 2 (프로필 수정)
다음 페이지를 참고로 했다.
BadDrawable (invalid Pixmap or Window parameter) #53
/etc/environment
를 편집기에서 엽니 다. 여기서 nano를 사용합니다.
$ sudo nano -w /etc/environment
마지막 줄에 다음을 추가합니다.
QT_X11_NO_MITSHM=1
sudo ./capture.py
를 다시 실행하여 이미지를 볼 수 있으면 해결.
이상.
Reference
이 문제에 관하여(OpenCV에서 웹캠에서 이미지를 얻지 못할 때의 메모 (Ubuntu16.04)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ka10ryu1/items/c87a6a9d9bdde9638618
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
#!/usr/bin/env python3
# -*-coding: utf-8 -*-
import cv2
import time
def main():
cap = cv2.VideoCapture(0)
while(True):
# Capture frame-by-frame
ret, frame = cap.read()
if ret:
cv2.imshow('frame', frame)
else:
time.sleep(2)
# Display the resulting frame
if cv2.waitKey(20) == 27:
break
# When everything done, release the capture
cap.release()
cv2.destroyAllWindows()
if __name__ == '__main__':
main(args)
$ sudo ./capture.py
상기에서 그대로 화상을 취득할 수 있으면 문제는 없지만, 이하와 같은 에러가 발생하는 경우가 있다.
X Error: BadDrawable (invalid Pixmap or Window parameter) 9
Major opcode: 62 (X_CopyArea)
Resource id: 0x3600010
해결책 그 1 (저장)
cv2.imshow()
를 그만두고 cv2.imwrite()
를 이용하면 정상적으로 취득할 수 있을 것. 그러나 불편하다.해결책 그 2 (프로필 수정)
다음 페이지를 참고로 했다.
BadDrawable (invalid Pixmap or Window parameter) #53
/etc/environment
를 편집기에서 엽니 다. 여기서 nano를 사용합니다.$ sudo nano -w /etc/environment
마지막 줄에 다음을 추가합니다.
QT_X11_NO_MITSHM=1
sudo ./capture.py
를 다시 실행하여 이미지를 볼 수 있으면 해결.이상.
Reference
이 문제에 관하여(OpenCV에서 웹캠에서 이미지를 얻지 못할 때의 메모 (Ubuntu16.04)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ka10ryu1/items/c87a6a9d9bdde9638618텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)