창이 만들어지고 웹캠의 표시등이 켜졌 기 때문에 부분적으로 거기에 있다는 것을 알고 있지만 창에 아무것도 표시되지 않는 것 같습니다. 누군가 내가 뭘 잘못하고 있는지 설명 할 수 있기를 바랍니다.
import cv
cv.NamedWindow("w1", cv.CV_WINDOW_AUTOSIZE)
capture = cv.CaptureFromCAM(0)
def repeat():
frame = cv.QueryFrame(capture)
cv.ShowImage("w1", frame)
while True:
repeat()
관련없는 메모에서 나는 웹캠이 cv.CaptureFromCAM
에서 가끔 색인 번호를 변경하는 것을 발견했으며, 카메라가 하나만 연결되어 있는데도 0, 1 또는 2를 입력해야하는 경우도 있습니다. 플러그를 뽑지 않았습니다 (인덱스를 변경하지 않으면 빛이 켜지지 않기 때문에 알고 있습니다). Python이 올바른 색인을 결정하도록하는 방법이 있습니까?
해결 방법
repeat ()
메서드의 하단에 c = cv.WaitKey (10)
줄을 추가해보세요.
사용자가 키를 입력 할 때까지 10ms를 기다립니다. 키를 전혀 사용하지 않더라도 이것을 넣으십시오. 약간의 지연이 필요하다고 생각하므로 time.sleep (10)
도 작동 할 수 있습니다.
카메라 인덱스와 관련하여 다음과 같이 할 수 있습니다.
for i in range(3):
capture = cv.CaptureFromCAM(i)
if capture: break
이것은 적어도 0-2의 인덱스에 대해 첫 번째 "작동하는"캡처 장치의 인덱스를 찾습니다. 컴퓨터에 적절한 캡처 장치로 인식되는 여러 장치가있을 수 있습니다. 내가 아는 유일한 방법은 당신의 빛을 수동으로 보는 것입니다. 아마도 이미지를 얻고 그 속성을 확인합니까?
프로세스에 사용자 프롬프트를 추가하려면 반복 루프에서 카메라 전환에 키를 바인딩 할 수 있습니다.
import cv
cv.NamedWindow("w1", cv.CV_WINDOW_AUTOSIZE)
camera_index = 0
capture = cv.CaptureFromCAM(camera_index)
def repeat():
global capture #declare as globals since we are assigning to them now
global camera_index
frame = cv.QueryFrame(capture)
cv.ShowImage("w1", frame)
c = cv.WaitKey(10)
if(c=="n"): #in "n" key is pressed while the popup window is in focus
camera_index += 1 #try the next camera index
capture = cv.CaptureFromCAM(camera_index)
if not capture: #if the next camera index didn't work, reset to 0.
camera_index = 0
capture = cv.CaptureFromCAM(camera_index)
while True:
repeat()
면책 조항 : 나는 이것을 테스트하지 않았으므로 버그가 있거나 작동하지 않을 수 있지만 최소한 해결 방법에 대한 아이디어를 줄 수 있습니다.
참조 페이지 https://stackoverflow.com/questions/2601194
'파이썬' 카테고리의 다른 글
파이썬 x의 반환 값 = os.system (..) (0) | 2020.12.07 |
---|---|
파이썬 Python에서 여러 수준의 'collection.defaultdict' (0) | 2020.12.07 |
파이썬 반환을 기다리지 않고 파이썬에서 프로그램을 호출하는 방법 (0) | 2020.12.07 |
파이썬 파일의 마지막 X 줄을 검색하는 가장 효율적인 방법은 무엇입니까? (0) | 2020.12.07 |
파이썬 ImportError : datetime이라는 모듈이 없습니다. (0) | 2020.12.07 |
댓글