在Ubuntu 11.10中,使用python截取屏幕截圖並將屏幕截圖轉換爲與圖像模板匹配的this question兼容的格式的最快方法是什麼?最快捷的方式將屏幕截圖加載到內存中以便進行CV模板匹配
回答
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])
我希望這有助於。
看起來像這可能工作,我現在正在測試它。 =) – 2012-01-15 10:23:31
這實際上不起作用。在pixbuf.get_pixels_array()我得到「中止」作爲輸出,它只是停止。 – 2012-01-15 10:53:28
這很奇怪。我也使用Ubuntu 11.10與Python 2.7.2-7ubuntu2和python-gtk2 2.24.0-2,它適用於我。 – jcollado 2012-01-15 11:05:19
- 1. iOS以編程方式添加主屏幕快捷方式
- 2. InstallShield 2012 - 將快捷方式添加到開始屏幕
- 3. 將Web快捷方式添加到iPhone主屏幕?
- 4. 如何在Android中以編程方式添加快捷方式到主屏幕
- 5. 以屏幕截圖(以編程方式)
- 6. bash上macOS屏幕截圖的模式匹配
- 7. iOS以編程方式使用GPUImageview進行屏幕截圖
- 8. 以編程方式進行屏幕截圖,沒有狀態欄
- 9. Monodroid屏幕截圖內存
- 10. MaxMind:將GeoIP2 mmdb加載到內存中以便快速讀取
- 11. Android - 添加到主屏幕的快捷方式,並指定屏幕和位置
- 12. Android PWA主屏幕快捷方式
- 13. 添加應用程序到主屏幕快捷方式
- 14. 以編程方式拍攝整個屏幕的屏幕截圖
- 15. Qt - 刪除快捷方式 - 模糊的快捷方式超載
- 16. 將背景添加到屏幕截圖
- 17. 將屏幕截圖添加到TestNG
- 18. 添加主屏幕快捷方式時顯示的消息。
- 19. 帶圖標的主屏幕快捷方式
- 20. 以當前屏幕的屏幕截圖
- 21. 以整個屏幕的屏幕截圖
- 22. SpriteKit屏幕截圖的屏幕截圖
- 23. 如何以編程方式截取DrawingSurface的屏幕快照
- 24. 如何檢查主屏幕是否存在快捷方式?
- 25. 將屏幕截圖與最後一張屏幕截圖進行比較,僅在更改時才使用
- 26. 以編程方式在Android中刪除所有主屏幕快捷方式
- 27. 向主屏幕添加android啓動器快捷方式
- 28. 使用從URL下載的圖像在主屏幕上創建快捷方式
- 29. 不顯示Android主屏幕快捷方式圖標
- 30. 將屏幕截圖圖像保存到Flex中的文件4
你看過http://stackoverflow.com/questions/69645/take-a-screenshot-via-a-python-script-linux的起點嗎?下一步轉換爲OpenCV的一個很好的格式。至於速度,爲什麼你需要速度快? – batbrat 2012-01-15 10:06:41
@batbrat我正在製作一個圖像識別機器人,所以速度比我看到的一些解決方案更可取,而這些解決方案需要幾秒鐘來處理屏幕截圖。只要速度相當快,我不會在亞秒時間內挑剔。 – 2012-01-15 10:24:24