題:
用於拍攝相機圖像的Python庫
moose
2015-02-10 02:42:52 UTC
view on stackexchange narkive permalink

我如何使用Python從相機(例如筆記本電腦中的內置網絡攝像頭)中獲取單個圖像?

我正在尋找一個可以在幾行中實現這一目標的庫代碼(我不打算編寫相機驅動程序或類似的東西)。該圖像應採用某些標準的位圖格式。

也請

  • 列出要求(例如,已安裝的軟件包,操作系統),
  • 添加鏈接到文檔 ​​li>
該問題已遷移到[softwarerecs.se]。我對您的標題進行了編輯,使其在此處更具話題性,並刪除了您無法合理期望在此處實現的兩個要求。如果您不同意,則可以還原編輯。
對於所有答案,請注意http://stackoverflow.com/a/34687991/562769
請告訴我們您的操作系統:linux,mac,windows ...
七 答案:
moose
2015-02-10 02:42:52 UTC
view on stackexchange narkive permalink

SimpleCV

安裝

在基於Debian的系統上:

  sudo apt-get install python-opencv  

Code

 導入時間從SimpleCV import Cameracam = Camera()time.sleep(0.1)#如果不等待,圖像將變暗。img= cam.getImage()img.save(“ simplecv.png”) 

SimpleCV圖像

enter image description here

儘管光照情況沒有變化,但Python圖像要暗得多。我不確定為什麼會這樣。

我的第一個猜測是python圖像的縮放比例是0-1,而應該是0-255。
@Dirk:您知道如何解決它嗎?
乘以255,然後將其另存為png :)
@Dirk:這似乎不是問題。我打印了一個像素,它顯示了帶有整數的RGBA值。所以我想使用的是0..255範圍。但是,我不確定為什麼是RGBA而不是RGB。
我剛剛針對SimpleCV提出了一個問題[相機圖像非常暗](https://github.com/sightmachine/SimpleCV/issues/665)。讓我們看看他們是否知道如何解決它。
moose
2015-02-10 03:29:30 UTC
view on stackexchange narkive permalink

OpenCV

安裝

在基於Debian的系統上:

  sudo apt-get install python -opencv  

代碼

 導入時間import cv2camera_port = 0camera = cv2.VideoCapture(camera_port)time.sleep(0.1)#如果您不等待,圖像將為darkreturn_value,圖像= camera.read()cv2.imwrite(“ opencv.png”,image)del(camera)#,以便其他人可以盡快使用該相機 
@PadraicCunningham謝謝,我已經添加了它。你知道對方是否有/需要類似的東西嗎?
pygame中的`cam.stop()`
moose
2015-02-10 03:09:25 UTC
view on stackexchange narkive permalink

PyGame

此答案部分取自 https://stackoverflow.com/a/11094891/562769-謝謝 Froyo

感謝 Phani幫助我進行了改進。

安裝

在基於Debian的系統上:

  sudo apt-get install python-pygame  

Code

  import pygameimport pygame.cameraimport timepygame.camera.init()pygame.camera.list_cameras()cam = pygame.camera.Camera(“ / dev / video0”,(640,480))cam.start()time.sleep(0.1)#您可能需要在開頭添加一些內容img = cam.get_image()pygame.image.save (img,“ pygame.jpg”)cam.stop() 
在這裡添加一個“ time.sleep(0.1)”也會很有用。否則,圖像暗淡
睡眠必須在`cam.start()`之後。另外,對我來說,戴爾筆記本電腦上的“ 0.1”還不夠。 0.5對我有用。
@Phani非常有趣。我測試了幾次,我猜我的計算機也太低了0.1。但是,運行腳本幾次後,不需要“休眠”代碼行。我嘗試的最後一件事是將睡眠設置在`cam = ...`和`cam.start()`之間。我(錯誤地)認為它必須存在,因為它在更改了它之後才起作用。
在Windows 7,py36上,我得到`ImportError:無法導入名稱'_camera'`。
ShivaGuntuku
2016-06-01 17:25:35 UTC
view on stackexchange narkive permalink

我剛剛修改了@Martin Thoma代碼。

 導入cv2camera = cv2.VideoCapture(0),而True:return_value,image = camera.read()灰色= cv2.cvtColor(image ,cv2.COLOR_BGR2GRAY)cv2.imshow('image',gray)如果cv2.waitKey(1)& 0xFF == ord('s'):cv2.imwrite('test.jpg',image)breakcamera.release() cv2.destroyAllWindows() 

解決黑屏問題。我希望會有所幫助。謝謝。

Yfomnn
2019-05-06 16:24:52 UTC
view on stackexchange narkive permalink

捕獲

安裝

  pip安裝捕獲 

代碼

 從ecapture導入ecapture作為ecec.capture(0,“ test”,“ img.jpg”) 
guettli
2016-06-01 19:41:23 UTC
view on stackexchange narkive permalink

我將這個問題分為兩部分。

  1. 從命令行拍攝圖片
  2. ol>

    我希望您使用像linux這樣的操作系統有一個命令行。
    AFAIK gphoto2可以執行以下操作

    1. 使用Python子進程模塊

      subprocess.call( ['yourtoo','arg1,...])

    2. ol>
max ng
2016-03-01 21:24:43 UTC
view on stackexchange narkive permalink

要解決黑屏問題,請讓凸輪預熱。

  import time import cv2camera_port = 0camera = cv2.VideoCapture(camera_port)time.sleep(0.1)return_value,image = camera .read()cv2.imwrite(“ opencv.jpg”,image)del(camera)#,以便其他人可以盡快使用該相機 
這正是我2個月前在評論中寫的內容。如果您認為這是一個答案,則至少應使其成為社區Wiki答案。


該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...