2016-12-22 1 views
1

OpenCV로 분석하기 위해 화면의 특정 영역에 대한 스크린 샷을 ImageGrab로 가져 와서 numpy 배열로 변환하고 싶습니다. 그러나 나는 잡기 기능의 매개 변수를 변경할 때 무작위로 만 계속 나타나는 src 데이터 유형 17 오류를 발견했습니다. 따라서 매개 변수가 (10, 10, 50, 40) 인 경우 예를 들어 (100, 100, 100, 100)과 같은 다른 매개 변수를 사용하여 opencv를 사용하여 그레이 스케일로 변환 할 수있는 정상적인 배열을 인쇄합니다. 그것은 src data type = 17 is not supported error을 계속 제공합니다. numpy 배열을 인쇄하려고하면 배열도 표시되지 않지만 크기 0x0 인 메모리에만 배치됩니다 (예 : <PIL.Image.Image image mode=RGB size=0x0 at 0x532C570>). 다음은 코드 예제입니다. 아무도 내가 왜 이런 일이 일어 났는지 설명하고 도움을 줄 수 있다면 그것을 고맙게 생각합니다.src 데이터 유형 17 지원되지 않음 OpenCV Python에서 오류가 발생했습니다.

import cv2 
import numpy as np 
from PIL import ImageGrab 

while True: 
    img = ImageGrab.grab(bbox=(10, 10, 50, 40)) 
    img_np = np.array(img) 
    print img_np 
    #img_grayscaled = cv2.cvtColor(img_np, cv2.COLOR_BGR2GRAY) 

답변

1

PIL의 바운딩 박스의 왼쪽을 정의하는 4 튜플, 상부, 우측, 하부 픽셀 좌표는 docs for getbbox 참조. 따라서 (100, 100, 100, 100)은 적절한 이미지 (높이 및 너비가 없음)를 제공하지 않습니다.

+0

오 와우도 이것을 깨닫지 못했습니다. 픽셀의 양이 x 축과 y 축으로 이동하는 너비와 높이가 있다고 생각했습니다. 설명해 주셔서 감사드립니다. – user21398

관련 문제