質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
MATLAB

MATLABはMathWorksで開発された数値計算や数値の視覚化のための高水準の対話型プログラミング環境です。

Q&A

2回答

1402閲覧

画像処理のプログラムについて

nikumanumama

総合スコア7

MATLAB

MATLABはMathWorksで開発された数値計算や数値の視覚化のための高水準の対話型プログラミング環境です。

0グッド

0クリップ

投稿2018/07/03 12:01

function I_rec = notSoBaselineAnymoreFast(I, mask)
%set not set pixel to zero, just to be sure
I(~mask) = 0;

% calculate inpainting with a 3x3 kernel
souroundedPatchCount3 = imfilter(double(mask),ones(3));
I_rec = imfilter(I,ones(3)) ./ souroundedPatchCount3;
% calculate inpainting with a 5x5 kernel
souroundedPatchCount5 = imfilter(double(mask),ones(5));
I_rec5 = imfilter(I,ones(5)) ./ souroundedPatchCount5;
% remove dev by zero by overwriting it with a overall mean, just in case.
I_rec5(souroundedPatchCount5 <= 0) = mean( I(mask == 1) );

% set in the missing pixel in the smaller aproximation
I_rec(souroundedPatchCount3 <= 0) = I_rec5(souroundedPatchCount3 <= 0);

%%% post processing
I_rec(mask) = I(mask);
h = [0.01, 0.08, 0.01; 0.08, 0.64, 0.08; 0.01, 0.08, 0.01];
I_rec = imfilter(I_rec,h,'symmetric');

%smoothing with box filter I_rec(mask) = I(mask); h = [0, 0.125, 0; 0.125, 0.5000, 0.1250; 0, 0.125, 0]; I_rec = imfilter(I_rec,h,'symmetric'); I_rec(mask) = I(mask);

end


I=imread('lena_destroyed.png');
mask=7
re=notSoBaselineAnymoreFast(I, mask);
imshow(re)

というプログラムを作成しました。

画像を表示した結果真っ黒な画像が出てきました。
maskをどのようにしたら画像が修復されますか。
ご回答よろしくお願い致します

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

filter処理する際に、画像をdouble型にして渡していますが、imshowはuint8なら輝度表示範囲がデフォルトで[0 255]でああるのに対し、それ以外ではデフォルトで[0 1]となってしまい、真っ黒に表示されます。

imshow(re,[])とすれば表示上はreの最小値を真っ黒、reの最大値を真っ白に表示するので、真っ黒に表示されるのを直せると思います。

もしもこれをuint8に直し保存したいなら、reを[0 255]に収まるように正規化し手からuint8に直せば修復できます。
そのフィルタ係数ですと、単にuint8にするだけでは真っ黒になるので注意が必要です。

投稿2020/01/27 08:53

Kenichir

総合スコア28

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

imshow(re)を
imagesc(re)に置き換える

投稿2018/07/04 01:02

WathMorks

総合スコア1582

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問