mcpField
M
matlab-use-cameras

matlab-use-cameras

github.com/matlabデータ・データベース1.2k52 回インストール1 日前に更新
リポジトリ

matlab-use-cameras について

Image Acquisition Toolboxのvideoinputを主なインターフェースとして使う、MATLABのカメラ取得スキルです。機器の検出、ライブプレビュー、フレーム取得と、複数のカメラやフレームグラバーへの接続方法を扱います。

主な機能

  1. 01videoinputによるカメラ接続
  2. 02アダプターと機器の列挙
  3. 03画像形式とROIの設定
  4. 04映像のプレビューとフレーム取得
  5. 05トリガーと取得条件の設定

活用シーン

  1. 01USBまたは内蔵ウェブカメラへの接続
  2. 02ライブ画像や映像フレームの取得
  3. 03GigE Visionカメラの確認
  4. 04フレームグラバー経由のCoaXPressまたはCamera Link利用

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/matlab/matlab-agentic-toolkit --skill matlab-use-cameras

インストール後、Claude Code で/matlab-use-camerasを入力して読み込まれたか確認します。

同梱ファイルmanifest.yamlreferences/gentl-setup.md

詳細

MATLABでカメラを使用する

すべてのカメラワークフローで、Image Acquisition Toolboxのvideoinputを主要なインターフェイスとして使用します。その他のインターフェイス(webcam、gigecam)は補助的なものとして扱い、明示的に要求された場合、またはvideoinputが利用できない場合にのみ使用してください。

使用する場合

  • ユーザーがカメラ(ウェブカメラ、USB、GigE、USB3 Vision、CoaXPress、Camera Link)への接続を希望している
  • ユーザーが画像またはビデオフレームの取得を希望している
  • ユーザーがカメラのライブ映像のプレビューを希望している
  • ユーザーが利用可能なカメラの一覧表示または列挙を希望している
  • ユーザーがCoaXPressフレームグラバーからの画像取得を希望している
  • ユーザーがCamera Linkフレームグラバー経由での画像取得を希望している
  • ユーザーが「MATLABでウェブカメラ/カメラを使うにはどうすればよいですか?」と尋ねている
  • ユーザーがImage Acquisition Toolboxに言及している

使用しない場合

  • ユーザーがwebcamサポートパッケージのwebcam()を明示的に要求している
  • ユーザーがMATLAB Onlineを使用している(videoinputは利用できないため、webcam()を使用します)
  • ユーザーが既存ファイルの画像処理を行っている(カメラは関与しません)
  • ユーザーが画像機器以外のハードウェア(オシロスコープ、データ収集ボード)を使用している

規約

APIの優先順位

これらのルールは重要です。ユーザーが明示的に別の方法を要求しない限り、従ってください。

  1. 常にImage Acquisition Toolboxのvideoinput()を主要なカメラインターフェイスとして使用します
  2. デバイスの列挙には常にimaqhwinfoを使用します。webcamlistやgigecamlistは使用しないでください
  3. GigE Visionカメラには:gigecamやvideoinput("gige")ではなく、videoinput("gentl", ...)を使用します
  4. WindowsのUSB/内蔵ウェブカメラには:videoinput("winvideo", ...)を使用します
  5. macOSのUSB/内蔵ウェブカメラには:videoinput("macvideo", ...)を使用します
  6. LinuxのUSB/内蔵ウェブカメラには:videoinput("linuxvideo", ...)を使用します
  7. CoaXPressカメラには:videoinput("gentl", ...)を使用します。CoaXPressフレームグラバーは常にGenTLプロデューサーを提供します
  8. **Camera Linkカメラには:**フレームグラバーがGenTLプロデューサーを提供する場合はvideoinput("gentl", ...)を優先します。提供しない場合は、ベンダー固有のアダプター(例:videoinput("ni", ...)、videoinput("dalsa", ...))を使用します
  9. **ユーザーがフレームグラバーの名称を示さずにCoaXPressまたはCamera Linkカメラを指定した場合:**コードを書く前に、使用しているフレームグラバーをユーザーに確認します。アダプターの選択はフレームグラバーによって異なります
  10. **videoinputを「レガシー」または「高度な」インターフェイスと説明してはいけません。**これは主要なフル機能インターフェイスです
webcam()を使用する場合

次の場合に限ります:

  • ユーザーが明示的に要求している
  • ユーザーがMATLAB Onlineを使用している
  • Image Acquisition Toolboxがインストールされていない(imaqhwinfoで確認します)
必要なサポートパッケージ
カメラの種類アダプターサポートパッケージベンダーのGenTLプロデューサー(.cti)
USB/内蔵ウェブカメラ(Windows)"winvideo"OS Generic Video Interface不要
USB/内蔵ウェブカメラ(macOS)"macvideo"OS Generic Video Interface不要
USB/内蔵ウェブカメラ(Linux)"linuxvideo"OS Generic Video Interface不要
GigE Visionカメラ"gentl"GenICam Interface必須 — カメラベンダーから入手
USB3 Visionカメラ"gentl"GenICam Interface必須 — カメラベンダーから入手
CoaXPressカメラ(フレームグラバー経由)"gentl"GenICam Interface必須 — フレームグラバーベンダーから入手
Camera Linkカメラ(GenTLプロデューサー)"gentl"GenICam Interface必須 — フレームグラバーベンダーから入手
Camera Linkカメラ(ベンダーアダプター)ベンダー固有(例:"ni"、"dalsa")ベンダー提供のハードウェアアダプター該当なし

**重要:**GenICam Interfaceサポートパッケージが提供するのは、MATLAB側のコンシューマーのみです。gentlカメラを使用する場合、さらにベンダーのGenTLプロデューサー(.ctiファイル)もインストールする必要があります。例:FLIRのSpinnaker SDK、Allied VisionのVimba X、BalluffのImpactAcquire、EuresysフレームグラバーのEuresys eGrabber。プロデューサーはMATLABのサポートパッケージに含まれていません。

ワークフロー

1. デバイスを列挙する
% List all available adaptors and devices
info = imaqhwinfo;
disp(info.InstalledAdaptors)

% Get details for a specific adaptor
adaptorInfo = imaqhwinfo("winvideo");
disp(adaptorInfo.DeviceInfo)
2. カメラに接続する
% USB/built-in webcam on Windows
vid = videoinput("winvideo", 1);

% GigE Vision camera via GenTL
vid = videoinput("gentl", 1);

% Specify a format
vid = videoinput("winvideo", 1, "YUY2_1280x720");
3. プロパティを設定する
% Set color space
vid.ReturnedColorSpace = "rgb";

% Set region of interest [x_offset y_offset width height]
vid.ROIPosition = [0 0 640 480];

% Access device-specific properties via the source object
src = getselectedsource(vid);
4. ライブ映像をプレビューする
preview(vid);
pause(3);
5. フレームを取得する

単一のスナップショット:

img = getsnapshot(vid);
imshow(img);

複数のフレーム(即時トリガー):

vid.FramesPerTrigger = 10;
start(vid);
wait(vid);
[frames, timestamps] = getdata(vid);

手動トリガー(必要に応じて取得):

triggerconfig(vid, "manual");
vid.FramesPerTrigger = 1;
start(vid);
trigger(vid);
img = getdata(vid);
6. クリーンアップする
stoppreview(vid);
stop(vid);
delete(vid);
clear vid;

主な関数

関数用途提供元
imaqhwinfoアダプターとデバイスの一覧表示Image Acquisition Toolbox
videoinputビデオ入力オブジェクトの作成(主要なインターフェイス)Image Acquisition Toolbox
previewライブ映像の表示Image Acquisition Toolbox
getsnapshot単一フレームを即座にキャプチャImage Acquisition Toolbox
start取得を開始Image Acquisition Toolbox
getdataバッファーから取得済みのフレームを取得Image Acquisition Toolbox
stop取得を停止Image Acquisition Toolbox
getselectedsourceデバイス固有のプロパティにアクセスImage Acquisition Toolbox
triggerconfigトリガーの種類(即時、手動、ハードウェア)を設定Image Acquisition Toolbox
triggerstart の後に手動トリガーを実行Image Acquisition Toolbox
imageAcquisitionExplorer対話型の取得アプリを起動Image Acquisition Toolbox

使用パターン

USB/内蔵ウェブカメラ(Windows)
% Enumerate
info = imaqhwinfo("winvideo");
disp(info.DeviceInfo.DeviceName)

% Connect and configure
vid = videoinput("winvideo", 1, "YUY2_1280x720");
vid.ReturnedColorSpace = "rgb";
vid.FramesPerTrigger = 1;

% Preview and capture
preview(vid);
pause(2);
img = getsnapshot(vid);
imshow(img);

% Clean up
stoppreview(vid);
delete(vid);
clear vid;
GigE Vision カメラ(GenTL)

GenTL アダプターは、GigE Vision および USB3 Vision カメラに推奨されるインターフェイスです。GenICam 標準を完全にサポートし、さまざまなカメラメーカーの製品で動作します。

% Enumerate
info = imaqhwinfo("gentl");
disp(info.DeviceInfo.DeviceName)

% Connect
vid = videoinput("gentl", 1);
vid.ReturnedColorSpace = "rgb";

% Configure acquisition
vid.FramesPerTrigger = 10;

% Access GenICam properties via source object
src = getselectedsource(vid);

% Acquire
start(vid);
wait(vid);
[frames, timestamps] = getdata(vid);

% Clean up
stop(vid);
delete(vid);
clear vid;

GenTL アダプターがインストールされていない場合は、セットアップを案内してください。

  1. Add-On Explorer から「Image Acquisition Toolbox Support Package for GenICam Interface」をインストールします
  2. メーカーの GenTL プロデューサー(.cti ファイル)をインストールします。例:FLIR カメラ用の Spinnaker SDK、Allied Vision 用の Vimba X、またはメーカーの GigE Vision SDK
  3. imaqhwinfo("gentl") で確認します。カメラが DeviceInfo に表示されるはずです

GenTL プロデューサーの設定とトラブルシューティングの詳細は、references/gentl-setup.md を参照してください。

CoaXPress カメラ(フレームグラバー経由)

CoaXPress フレームグラバーには必ず GenTL プロデューサーが用意されているため、gentl アダプターを使用する GigE Vision と同じワークフローになります。

% Enumerate — CoaXPress cameras appear under the gentl adaptor
info = imaqhwinfo("gentl");
disp(info.DeviceInfo.DeviceName)

% Connect and acquire
vid = videoinput("gentl", 1);
vid.ReturnedColorSpace = "rgb";
vid.FramesPerTrigger = 10;
src = getselectedsource(vid);
start(vid);
wait(vid);
[frames, timestamps] = getdata(vid);

% Clean up
stop(vid);
delete(vid);
clear vid;
Camera Link カメラ(フレームグラバー経由)

Camera Link には、フレームグラバーのメーカーが GenTL プロデューサーを提供しているかどうかに応じて、2 つの方法があります。

GenTL プロデューサーがある場合(推奨): videoinput("gentl", ...) を使用します。上記の GigE/CoaXPress と同じです。

GenTL プロデューサーがない場合(メーカーのアダプター): imaqhwinfo に登録されているメーカー固有のアダプターを使用します。

% Check which adaptors are available
info = imaqhwinfo;
disp(info.InstalledAdaptors)

% Connect via vendor adaptor (e.g., "ni" for National Instruments)
vid = videoinput("ni", 1);
vid.ReturnedColorSpace = "rgb";
src = getselectedsource(vid);

重要: フレームグラバーが明示されていない状態で、ユーザーが Camera Link または CoaXPress カメラについて言及した場合は、使用しているフレームグラバーを尋ねてください。正しいアダプターはカメラではなく、フレームグラバーによって異なります。

よくある間違い

間違い誤りである理由正しい方法
USB カメラに webcam() を使用するIMAQ の全機能(トリガー、ROI、ロギング、コールバック)を利用できませんvideoinput("winvideo", ...) を使用します
カメラの検出に webcamlist を使用するWebカメラサポートパッケージのデバイスしか検出できず、産業用カメラは検出されませんimaqhwinfo を使用します
GigE カメラに gigecam を使用するインターフェイスが限定されており、GenICam の全機能セットをサポートしていませんvideoinput("gentl", ...) を使用します
videoinput("gige", ...) を使用するレガシーアダプターであり、積極的に保守されていませんvideoinput("gentl", ...) を使用します
GigE カメラの列挙に gigecamlist を使用するGigE Vision ハードウェアサポートパッケージに限定されていますimaqhwinfo("gentl") を使用します
videoinput を「レガシー」と呼ぶこれは主要な、積極的に保守されているインターフェイスですvideoinput を推奨される方法として紹介します
キャプチャに snapshot(cam) を使用するこれは Web カメラサポートパッケージの関数ですvideoinput では getsnapshot(vid) を使用します
タイムスタンプに now/datenum を使用する非推奨のシリアル日付番号ですタイミングメタデータには datetime("now") を使用します
Camera Link には専用のインターフェイスが必要だと思い込むフレームグラバーのベンダーがプロデューサーを提供している場合、GenTL は Camera Link で動作しますまず videoinput("gentl", ...) を試し、動作しない場合はベンダーアダプターに切り替えます

Copyright 2026 The MathWorks, Inc.


コメント