動画のノイズ除去について

4 vues (au cours des 30 derniers jours)
敬
le 15 Mai 2023
Commenté : le 20 Mai 2023
教えて頂きたく。動画のノイズをウェーブレットを使用してデノイズしたいと思っています。
%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
IM3 次元にする必要があります。
エラー: wdenoise2>checkInput (368)
validateattributes(im,{'numeric'},{'real','finite','3d','nonempty'},...
エラー: wdenoise2 (188)
[im,isRGB] = checkInput(im);

Réponses (1)

Atsushi Ueno
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
敬
le 20 Mai 2023
ビデオデータですが、上のパス設定で読み込めました。色々ありがとうございました。ウェーブレットでノイズ除去したいと思ったのですが、思ったよりノイズが除去できていませんでした。ほとんど元の動画と変わらない動画でした。他のノイズ除去法もテストしてみようと思います。もし何かお気づきの点あればお知らせいただけますと幸いです。

Connectez-vous pour commenter.

Catégories

En savoir plus sur ノイズ除去と圧縮 dans Help Center et File Exchange

Produits


Version

R2022b

Community Treasure Hunt

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

Start Hunting!