4 回答

TA貢獻1785條經驗 獲得超8個贊
這是從網絡攝像頭捕獲圖像的示例。這是更新的、面向對象的、整合的 OpenCV 2 Python API。
import cv2
# Camera 0 is your port number
camera_port = 0
#Number of frames to throw away while the camera adjusts to light levels
ramp_frames = 30
# Initialize cam with port
camera = cv2.VideoCapture(camera_port)
# Captures a single image & returns in PIL format
def get_image():
# read full image out of a VideoCapture object.
retval, im = camera.read()
return im
# Ramp the camera - these frames will be discarded and are only used to allow v4l2
for i in xrange(ramp_frames):
temp = get_image()
print("Taking image...")
# Take the actual image we want to keep
camera_capture = get_image()
file = "/home/codeplasma/test_image.png"
# correct format based on the file extension you provide. Convenient!
cv2.imwrite(file, camera_capture)
# capture object until your script exits
del(camera)

TA貢獻1820條經驗 獲得超9個贊
也許,您應該閱讀官方文檔。你試試這段代碼。祝你好運!
import cv2
cap = cv2.VideoCapture(0)
while(True):
# Capture frame-by-frame
ret, frame = cap.read()
# Display the resulting frame
cv2.imshow('frame',frame)
cv2.imread('./your-dir/image.png', frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# When everything done, release the capture
cap.release()
cv2.destroyAllWindows()

TA貢獻1830條經驗 獲得超3個贊
import numpy as np
import cv2
cap = cv2.VideoCapture(0)
while(True):
# Capture frame-by-frame
ret, frame = cap.read()
# Our operations on the frame come here
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
# Display the resulting frame
cv2.imshow('frame',gray)
#this line save your image into Dir
cv2.imwrite("you dir path eg. C:\", img)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# When everything done, release the capture
cap.release()
cv2.destroyAllWindows()

TA貢獻1890條經驗 獲得超9個贊
首先嘗試像管理員一樣運行 python 的 shell/console 來執(zhí)行腳本:這段代碼應該運行良好:
import cv2 #to take photos or pre-process it with some computer vision technique
import os #to save images at any path i.g E:/myfolder/images/
import argparse #to receive parameters in the console
#Open the camera:
cam = cv2.VideoCapture(0)
ap = argparse.ArgumentParser()
ap.add_argument("-c", "--quantity", required=True, help="Set the quantity of images that you want to take p. ej. 350")
args = vars(ap.parse_args())
#set path where we are going to save the image.
outDirectory = "E:/alxor/"
def takePhoto(number):
if cam.isOpened():
print("Camera opened successfully!")
#Get one image:
ret, frame = cam.read()
name = "image_"+str(number)+".jpg"
print(name)
cv2.imwrite(os.path.join(outDirectory, name), frame)
else:
print("[INFO] Can not open the camera :(")
c = int(args["quantity"])
j = 1
while j <= c: #introduciendo 's' salimos del bucle
print ("[INFO] WRITE 's' TO EXIT: ")
print ("[INFO] WRITE 'c' TO TAKE A PHOTO ")
user_input = input() #leer entrada
if user_input is 'c':
takePhoto(j)
print("[INFO] IMAGE #"+str(j)+" SAVED...")
if user_input is 's':
break
print("[INFO] THE PROGRAM HAS FINISHED..")
j+=1
#Turn off the camera..
cam.release()
print("[INFO] THE PROGRAM HAS FINISHED..")
更新 1. 使用 os 庫將圖像保存在所需路徑中。更新 2. 拍攝 n 張圖像的選項我也在 github 中留下了這段代碼: 代碼
- 4 回答
- 0 關注
- 144 瀏覽
添加回答
舉報