2016-12-22 70 views
1

OpenCVで分析するには、ImageGrabで画面の特定の領域のスクリーンショットを取得し、numpy配列に変換します。しかし、グラブ関数のパラメータを変更すると、ランダムにしか得られないsrcデータ型17のエラーが発生しました。たとえば、パラメータが(10,10,50,40)の場合、通常のnumpy配列が出力されますが、opencvでグレースケールに変換できますが、(100,100,100,100)それは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

関連する問題