画像比較について。
조회 수: 14 (최근 30일)
이전 댓글 표시
画像の比較について質問です。
2つのモノクロ画像を以下のコードで比較をしました。
imshowpair(img_a,img_b,'checkerboard') 下の画像は180度傾けた画像と通常の画像を比較しました。
この画像についてですが、格子のサイズ変更や、格子のサイズ(ピクセル表記)をどのようにすればわかりますか?
また、画質が悪いので良くすることも可能なのでしょうか?
質問が複数なので1つの回答でも構いません。
よろしくお願いします。
댓글 수: 0
채택된 답변
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
Satoshi Kobayashi
2019년 2월 5일
その通りです。15ピクセルか16ピクセルかは列/行によります。
もし、72dipで表示・印刷されるなら、一辺の長さは2.54/72*(一辺のピクセル数)となります。
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 基本的な表示에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!