動画の上にベクトル場で流速分布を表示したい

8 vues (au cours des 30 derniers jours)
巧 平山
巧 平山 le 26 Avr 2023
Commenté : 巧 平山 le 4 Août 2023
オプティカルフローのテンプレートopenExample('vision/viptrafficofExample')を用いて,動画上で稲の籾のオプティカルフローを解析しています。
しかし,テンプレートの自動車のようにうまくいきません。添付画像のように全体的に物が動いているため,矢印を沢山書くだけでは見にくい画像になっています。従って,動画の上にベクトル場を作成し,流速分布で表示したいと考えています。
しかし,ベクトル場作成はプロットでのみとなっているため,動画の上に重ねて表示する方法が分かりません。どのようにすれば,動画の上に流速分布を表示できますか??

Réponse acceptée

Atsushi Ueno
Atsushi Ueno le 26 Avr 2023
>どのようにすれば,動画の上に流速分布を表示できますか??
動画を1フレームずつ表示し、その上に流速分布のプロットが可能です。
動画ファイルの読み取りや書き出しは専用の関数群で実行できます。
[X,Y] = meshgrid(pi/8:pi/8:2*pi,pi/8:pi/8:pi);
U = 100 * sin(Y); V = 100 * cos(X);
imshow(imread('peppers.png')); % サンプル画像
hold on
quiver(X*100,Y*100,U,V,'y'); % 流速分布のサンプルを重ねてプロット
  4 commentaires
巧 平山
巧 平山 le 8 Mai 2023
返信ありがとうございました。非常に参考になりました。
巧 平山
巧 平山 le 4 Août 2023
追加の質問になります。
作成した画像をつなげて動画を作成しました。しかし、いくつか動画を作成した際に、colormapの範囲が異なっていることに気づいてclim関数を利用しましたが、画像情報が消えて上手く動作しませんでした。
解決法が有れば教えて頂きたいです。
tic
f_name_base = [pwd];
colormap jet
cmap=colormap;
for id =400:998
str_id = num2str(id, '%i');
frame=[f_name_base, str_id, '.jpg'];
F=imread(frame);
imshow(frame);
hold on;
X = zeros(1280,1,998);Y = zeros(1280,1,998);U = zeros(1280,1,998);V = zeros(1280,1,998) ;L = zeros(1280,1,998) ;M = zeros(1280,1,998) ;
X(:,1,id)=Mat(:,1,id);
Y(:,1,id)=Mat(:,2,id);
U(:,1,id)=Mat(:,3,id);
V(:,1,id)=Mat(:,4,id);
L(:,1,id)=hypot(U(:,1,id),V(:,1,id));L(:,1,id)=L(:,1,id).*10;
M(:,1,id)=round(L(:,1,id),0);M(:,1,id)=M(:,1,id)+1;
for k = 1:1280 % 流速分布のサンプルを重ねてプロット
quiver(X(k,1,id),Y(k,1,id),U(k,1,id),V(k,1,id),'Color',cmap(ceil(M(k,1,id)),:),'linewidth',2);
end
filename = [sprintf('%03d',id) '_quiver.jpg'];%テキストファイル名
fullname = fullfile(f_name_base,filename);%保存ファイルにパスをつなげる
ax=gca;
exportgraphics(ax,fullname) % JPEG fileで書き出す (※名前;img1.jpg, img2.jpg, etc.)
hold off
end

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur コンピューター ビジョンと Simulink dans Help Center et File Exchange

Produits


Version

R2023a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!