画像比較について。

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

採用された回答

Satoshi Kobayashi
Satoshi Kobayashi 2019 年 2 月 4 日
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 月 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 件)

カテゴリ

Help Center および File Exchange基本的な表示 についてさらに検索

製品


リリース

R2018b

Community Treasure Hunt

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

Start Hunting!