動画のノイズ除去について
4 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
教えて頂きたく。動画のノイズをウェーブレットを使用してデノイズしたいと思っています。
%FEP動画のフレームを読み込み、グレースケールに変換する
vfep = VideoReader("Ultrasonic_analysis\4852fep_20230512.avi")
mvfep=zeros(vfep.Height,vfep.Width,3,int64(vfep.FrameRate*vfep.Duration),'uint8');
k=1;
while hasFrame(vfep)
mvfep(:,:,:,k) = readFrame(vfep)
gray_mvfep(:,:,:,k) = rgb2gray(mvfep(:,:,:,k));
imshow(mvfep(:,:,:,k))
k=k+1
end
implay(gray_mvfep,vfep.FrameRate)
%ウェーブレット変換によるノイズ除去
wvfep=wdenoise2(gray_mvfep);
implay(wvfep,vfep.FrameRate*duration);
下記のエラーがでます。引数の設定の仕方かもしれませんが、
対処法をご教授頂けないでしょうか?
よろしくお願いいたします。
次を使用中: WDENOISE2
IMは3 次元にする必要があります。
エラー: wdenoise2>checkInput (行 368)
validateattributes(im,{'numeric'},{'real','finite','3d','nonempty'},...
エラー: wdenoise2 (行 188)
[im,isRGB] = checkInput(im);
0 commentaires
Réponses (1)
Atsushi Ueno
le 15 Mai 2023
動画データ全体は(グレースケールでも)4次元データです。ウェーブレット変換によるノイズ除去はこれを受け付けないので、ループ内に入れフレーム1枚ずつ処理します。implayまで実行して確認していませんが、下記で良いと思います。
%FEP動画のフレームを読み込み、グレースケール変換・ノイズ除去を行う
vfep = VideoReader("Ultrasonic_analysis\4852fep_20230512.avi");
mvfep=zeros(vfep.Height,vfep.Width,3,int64(vfep.FrameRate*vfep.Duration),'uint8');
gray_mvfep=mvfep(:,:,1,:); % 追記
wvfep=gray_mvfep; % 追記
k=1;
while hasFrame(vfep)
mvfep(:,:,:,k) = readFrame(vfep);
gray_mvfep(:,:,1,k) = rgb2gray(mvfep(:,:,:,k));
wvfep=wdenoise2(gray_mvfep(:,:,1,k)); % ウェーブレット変換によるノイズ除去
%imshow(mvfep(:,:,:,k))
k=k+1
end
implay(gray_mvfep,vfep.FrameRate*vfep.Duration); % グレースケール変換済データを表示
implay( wvfep,vfep.FrameRate*vfep.Duration); % グレースケール変換・ノイズ除去済データを表示
8 commentaires
Voir également
Catégories
En savoir plus sur ノイズ除去と圧縮 dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!