2012-01-15 8 views
3

ubuntu 11.10でPythonでスクリーンショットを撮って、画像テンプレートの一致についてthis questionと互換性のあるフォーマットにスクリーンショットを変換する最も速い方法は何ですか?CVテンプレートマッチングのためのスクリーンショットを読み込む最も速い方法

+0

出発点はhttp://stackoverflow.com/questions/69645/take-a-screenshot-via-a-python-script-linuxを見ましたか?次に、OpenCV用の素敵なフォーマットに変換します。スピードについては、なぜそれが速くなる必要がありますか? – batbrat

+1

@batbrat私は画像認識ボットを作っているので、スクリーンショットを処理するのに数秒かかったいくつかのソリューションと比べて、スピードが望ましいです。私はそれほど速いのであれば、亜秒をかけてニッピックするつもりはありません。 –

答えて

4

xpresserは、opencvも使用するubuntuで動作するプロジェクトです。

def take_screenshot(x=0, y=0, width=None, height=None): 
    window = gtk.gdk.get_default_root_window() 
    if not (width and height): 
     size = window.get_size() 
     if not width: 
      width = size[0] 
     if not height: 
      height = size[1] 
    pixbuf = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB, False, 8, width, height) 
    pixbuf = pixbuf.get_from_drawable(window, window.get_colormap(), 
             x, y, 0, 0, width, height) 
    array = pixbuf.get_pixels_array() 
    return Image("screenshot", array=array, 
       width=array.shape[1], height=array.shape[0]) 

私はこれが役に立てば幸い:xutils moduleでは、次のようにあるスクリーンショットを取る機能があります。

+0

これは動作するかもしれないように見える、私は今それをテストしている。 =) –

+0

これは実際には機能しません。 pixbuf.get_pixels_array()では、出力として「中断」して停止します。 –

+0

それは変です。私はまた、Python 2.7.2-7ubuntu2とpython-gtk2 2.24.0-2でUbuntu 11.10を使用しています。 – jcollado