FAST レジストレーションのやり方

16 Ansichten (letzte 30 Tage)
wataru yoshimi
wataru yoshimi am 12 Jan. 2017
Beantwortet: Tohru Kikawada am 13 Jan. 2017
試したコード
% code
%%対応点の自動選択(FAST)
im1_16bit = imread('im1.tif');
im1_corners = detectFASTFeatures(im1_16bit);
im1_corners=(im1_corners.selectStrongest(2000));
im2_16bit = imread('im2.tif');
im2_corners= detectFASTFeatures(im2_16bit);
im2_corners=(im2_corners.selectStrongest(2000));
%レジスト
movingPoints=im2_corners
fixedPoints=im1_corners
mytform = fitgeotrans(movingPoints, fixedPoints, 'affine');
im2_registered = imwarp(im2_16bit, mytform);
end
このような処理をしたいのですが,movingPointsがsingle, double形式ではないので上手くできませんでした。今まではコントロールポイントで手動でmovingPointsとfixedPointsを選択していましたが、それの代わりに自動抽出されたcornerPointsを当てはめてレジストレーションをしたいです。

Akzeptierte Antwort

Tohru Kikawada
Tohru Kikawada am 13 Jan. 2017
下記の手順でコーナーポイントを使った位置あわせを行うことができます。
% 画像読み込み
I1 = rgb2gray(imread('viprectification_deskLeft.png'));
I2 = rgb2gray(imread('viprectification_deskRight.png'));
figure;
imshowpair(I1,I2);
title('読み込んだ画像の差分');
% コーナー点検出
points1 = detectHarrisFeatures(I1);
points2 = detectHarrisFeatures(I2);
% 特徴量抽出
[features1,valid_points1] = extractFeatures(I1,points1);
[features2,valid_points2] = extractFeatures(I2,points2);
% 特徴のマッチング
indexPairs = matchFeatures(features1,features2);
% 対応点を取得
matchedPoints1 = valid_points1(indexPairs(:,1),:);
matchedPoints2 = valid_points2(indexPairs(:,2),:);
% 対応点の可視化
figure; showMatchedFeatures(I1,I2,matchedPoints1,matchedPoints2);
% 幾何学変換行列の推定
[tform,inlierPts2,inlierPts1] = ...
estimateGeometricTransform(matchedPoints2,matchedPoints1,...
'similarity');
% 幾何学変換行列で使用された対応点の可視化
figure;
showMatchedFeatures(I1,I2,...
inlierPts1,inlierPts2);
title('幾何学変換行列で使用された対応点');
% 画像2を画像1に位置あわせ
outputView = imref2d(size(I1));
Ir = imwarp(I2,tform,'OutputView',outputView);
figure; imshowpair(I1,Ir);
title('画像2を画像1に位置あわせ');

Weitere Antworten (0)

Kategorien

Mehr zu Image Processing Toolbox finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by