Python基本チュートリアル:Pythonはcv2を介して複数のUSBカメラを読み取ります

@この記事は公開番号からのものです:csdn2299、必要に応じて、公開番号プログラマアカデミーをフォローできます。
この例では、参照用にcv2を介して複数のUSBカメラを読み取るPythonの特定のコードを共有しています。具体的な内容は次のとおりです。

カメラデータはcv2を介して簡単に取得できます。
たとえば、次の手順でカメラのディスプレイを開き、qキーを使用して画像を保存できます

import cv2
 
capture = cv2.VideoCapture(0)
# 打开自带的摄像头
if capture.isOpened():
 # 以下两步设置显示屏的宽高
 capture .set(cv2.CAP_PROP_FRAME_WIDTH, 640)
 capture .set(cv2.CAP_PROP_FRAME_HEIGHT, 480)
  
 # 持续读取摄像头数据
 while True:
  read_code, frame = capture.read()
  if not read_code:
   break
  cv2.imshow("screen_title", frame)
  # 输入 q 键,保存当前画面为图片
  if cv2.waitKey(1) == ord('q'):
   # 设置图片分辨率
   frame = cv2.resize(frame, (1920, 1080))
   cv2.imwrite('pic.jpg', frame)
   break
 # 释放资源  
 capture.release()
 cv2.destroyWindow("screen_title")

USBカメラを接続し、コードを使用して同時に操作したいのですが、どうすれば実現できますか?
キャプチャのオープン機能がカメラ番号で渡され、増加したカメラ番号が増加していることを確認します。
次のように修正されました

import cv2
 
capture = cv2.VideoCapture(0)
capture_usb = cv2.VideoCapture(1)
# 打开自带的摄像头
if capture.isOpened():
 if capture_usb.isOpened():
 # 以下设置显示屏的宽高
 capture.set(cv2.CAP_PROP_FRAME_WIDTH, 640)
 capture.set(cv2.CAP_PROP_FRAME_HEIGHT, 480)
 capture_usb.set(cv2.CAP_PROP_FRAME_WIDTH, 640)
 capture_usb.set(cv2.CAP_PROP_FRAME_HEIGHT, 480)
  
 # 持续读取摄像头数据
 while True:
  read_code, frame = capture.read()
  read_code2, frame2 = capture_usb.read()
  if not read_code or not read_code2:
   break
  cv2.imshow("screen_title", frame)
  cv2.imshow("screen_title_usb", frame2)
  # 输入 q 键,保存当前画面为图片
  if cv2.waitKey(1) == ord('q'):
   # 设置图片分辨率
   frame = cv2.resize(frame, (1920, 1080))
   cv2.imwrite('pic.jpg', frame)
   capture_usb.release()
   break
 # 释放资源  
 capture.release()
 cv2.destroyWindow("screen_title")

同時に複数のカメラを操作することはすでに可能ですが、別のUSBカメラが接続されている場合、どの数値がどのUSBデバイスを表すかを区別できません。

実装のソースコードを確認しました(参照:cap_8cpp_source.html)。open ここに画像の説明を挿入
関数は実際にはインデックスパラメータのみを受け取り、同じ名前の他の実装はありません。同様のハードウェアIDでパラメーターを一意に決定する場合は、そのようなメソッドを個別に実装する必要があります。

ただし、ソースコードを分析すると、getAvailableBackends_CaptureByIndex()の途中で呼び出されるこのようなメソッドがあることがわかります。そのため、カメラの情報はUSBアクセスシーケンスに従ってデータ構造に保存する必要があると大胆に推測し、デバイスの挿入順にカメラが使用されると想定できます。

読んでいただきありがとうございます
。大学でpythonを学ぶことを選んだとき、コンピュータの基礎がおかしいことに気付きました。学業資格はあり
ませんでした。これは何もする必要はありません。それを補うことしかできません。道は、Pythonのコア知識を学び続け、コンピューターの基礎の詳細な研究を整理し、平凡になりたくない場合は、コーディングに参加して成長を続けてください!
実は、ここには技術だけでなく、それ以外のものもあり、例えば「絹糸」というよりも、どうやってプログラマーとして絶妙な存在になるのか、プログラマー自体が高貴な存在ですね。[参加するにはクリックしてください]自分らしくなりたい、高貴な人になりたい、是非!

50件の元の記事を公開 21件の賞賛 20,000回以上の閲覧

おすすめ

転載: blog.csdn.net/chengxun03/article/details/105545007