画像の比較について質問です。
2つのモノクロ画像を以下のコードで比較をしました。
imshowpair(img_a,img_b,'checkerboard')  下の画像は180度傾けた画像と通常の画像を比較しました。
TEST.jpg
この画像についてですが、格子のサイズ変更や、格子のサイズ(ピクセル表記)をどのようにすればわかりますか?
また、画質が悪いので良くすることも可能なのでしょうか?
質問が複数なので1つの回答でも構いません。
よろしくお願いします。

 채택된 답변

Satoshi Kobayashi
Satoshi Kobayashi 2019년 2월 4일

1 개 추천

imshowpairで作成されるcheckerboardは16*16マスです。
以下、img_aとimg_bのサイズが同じことを前提とします。
全体サイズはimg_aのサイズと一致します。
格子のサイズはimg_aのサイズの1/16です。
imfuseを改変したコードです。1辺がnofcheckの2倍のマス数となるので、格子のサイズを変更できます。
nofcheck= 8;
sz = size(img_a);
result = zeros(sz,'like',img_a);
check = [1 0; 0 1];
check = repmat(check,nofcheck);
maskA = logical(imresize(check,sz(1:2),'nearest'));
if size(img_a,3) > 1
maskA = repmat(maskA,[1 1 3]);
end
maskB = ~maskA;
result(maskA) = img_a(maskA);
result(maskB) = img_b(maskB);
imshow(result)
imwrite(result,'result.tif')
厳密な格子のサイズはmaskAを調べれば分かります。
maskAが真ならimg_a、偽ならimg_bがresultに入ります。maskAを改変すれば自由なcheckerboardが作成できます。
画質は元の画像に依存します。保存する場合は保存方法により変わる可能性もあります。imwriteがよいでしょう。
im = imshowpair(img_a,img_b,'checkerboard');
imwrite(im.CData,'im.tif')

댓글 수: 3

qrqr
qrqr 2019년 2월 4일
ありがとうございます。
実際にやってみてそれぞれのコードの意味を理解していこうと思います。
まずは回答のお礼という形で返信させていただきます。
qrqr
qrqr 2019년 2월 5일
縦幅243ピクセル、横幅612ピクセル
水平方向の解像度72dip、垂直方向の解像度72dip
このサイズの画像の場合16×16の格子の縦のサイズは243/16=15.1875ピクセルということでしょうか?
また、cmに変換することもできますか?
質問ばかりですが宜しくお願いします。
Satoshi Kobayashi
Satoshi Kobayashi 2019년 2월 5일
その通りです。15ピクセルか16ピクセルかは列/行によります。
もし、72dipで表示・印刷されるなら、一辺の長さは2.54/72*(一辺のピクセル数)となります。

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

제품

릴리스

R2018b

질문:

2019년 2월 4일

댓글:

2019년 2월 5일

Community Treasure Hunt

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

Start Hunting!