動画のノイズ除去について
5 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
教えて頂きたく。動画のノイズをウェーブレットを使用してデノイズしたいと思っています。
%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 Kommentare
Antworten (1)
Atsushi Ueno
am 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 Kommentare
Siehe auch
Kategorien
Mehr zu 離散多重解像度解析 finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!