現在、Matlabには2つのウェブカメラから画像を取り込み、それらを重ね合わせて半時間リアルタイムに表示する時間間隔で更新されるコードが表示されます。 しかし、私はこれをリアルタイムで行う必要があります.3Dムービーと同じように、2つのウェブカメラストリームをどのように重ねるか考えている人はいますか?2つのWebカムストリームを重ね合わせる - Matlab
ありがとうございます!
現在、Matlabには2つのウェブカメラから画像を取り込み、それらを重ね合わせて半時間リアルタイムに表示する時間間隔で更新されるコードが表示されます。 しかし、私はこれをリアルタイムで行う必要があります.3Dムービーと同じように、2つのウェブカメラストリームをどのように重ねるか考えている人はいますか?2つのWebカムストリームを重ね合わせる - Matlab
ありがとうございます!
私はOpenCVでやってみることをお勧めします。
あなたは次の操作を行うことができ、両方の画像持つ、Anaglyph 3Dを意味する場合は、次の両方のPNGのすでに画像処理ツールボックスが付属して
left = imread('vipstereo_hallwayLeft.png');
right = imread('vipstereo_hallwayRight.png');
imshow(cat(3, left(:,:,1), right(:,:,2:3)));
を。
結果はこれになります(。あなたは赤/シアンメガネでそれを見ることができ、私はやった!):
1:私はすでに2つの方法でリアル写真と、この方法を試してみました
2枚の異なるカメラで同時に撮影した2枚の写真。
2.移動中のカメラで2枚の写真を非常に短時間で撮影しました。 (バーストモード)
両者とも優れた結果を出しました。
その後、2つのWebカメラでそれを行うには、以下を行う必要があります。
1.それらを適切にinitに。
2.トリガーごとに1フレームを取得するように設定します。
3.トリガーして両方のフレームを取得します。
4.フレームをミックスして表示します。
:
カメラのセットアップ:
% Get a handle to each cam
Lvid = videoinput('winvideo', 1, 'YUY2_1280x1024');
Rvid = videoinput('winvideo', 2, 'YUY2_1280x1024');
% Set them to get one frame/trigger
Lvid.FramesPerTrigger = 1;
Rvid.FramesPerTrigger = 1;
その後のフレームを取得するために、無限ループを行いますそれらをミックスして結果を表示します。
while(1)
% Trigers both video sources
start(Lvid);
start(Rvid);
% Get the frames
left = getdata(Lvid);
right = getdata(Rvid);
% Convert them to RGB
left = ycbcr2rgb(left);
right = ycbcr2rgb(right);
% mix them (R from right + GB from left)
frame = cat(3, left(:,:,1), right(:,:,2:3));
% show
imshow(frame);
pause(0.0001) % to refresh imshow
end
なお、私のウェブカメラは、私が前に画像を混合するRGBに変換する必要がYUVであるから。
希望すると、これが役立ちます。
私はこれを視覚化する際に問題があります。出力のサンプル画像を表示できますか? – PearsonArtPhoto
このように:http://programmerpayback.com/2011/04/16/live-stereoscopic-3d-in-the-mmp-player-framework/しかし、1つのカメラを赤色にし、もう1つを青色にするのではなく、色空間を分割することなく行うことができる。 – user1300561
私はあなたのリンク@ user1300561を見ました:非常にクールなアイデア。ああ、私はあなたの質問に答えることはできません: - / – Richard