2012-01-15 19 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 2012-01-15 10:06:41

+1

@batbrat我正在製作一個圖像識別機器人,所以速度比我看到的一些解決方案更可取,而這些解決方案需要幾秒鐘來處理屏幕截圖。只要速度相當快,我不會在亞秒時間內挑剔。 – 2012-01-15 10:24:24

回答

4

xpresser是一個在ubuntu上也使用opencv的項目。在xutils module有一個函數採取一個屏幕快照,如下所示:

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]) 

我希望這有助於。

+0

看起來像這可能工作,我現在正在測試它。 =) – 2012-01-15 10:23:31

+0

這實際上不起作用。在pixbuf.get_pixels_array()我得到「中止」作爲輸出,它只是停止。 – 2012-01-15 10:53:28

+0

這很奇怪。我也使用Ubuntu 11.10與Python 2.7.2-7ubuntu2和python-gtk2 2.24.0-2,它適用於我。 – jcollado 2012-01-15 11:05:19

相關問題