画像比較について。

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

Accepted Answer

Satoshi Kobayashi
Satoshi Kobayashi on 4 Feb 2019
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 Comments
Satoshi Kobayashi
Satoshi Kobayashi on 5 Feb 2019
その通りです。15ピクセルか16ピクセルかは列/行によります。
もし、72dipで表示・印刷されるなら、一辺の長さは2.54/72*(一辺のピクセル数)となります。

Sign in to comment.

More Answers (0)

Products


Release

R2018b

Community Treasure Hunt

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

Start Hunting!