文档

查找图像旋转和缩放使用自动特征匹配

这个例子展示了如何自动对齐,通过旋转和比例改变的不同的两个图像。它近乎平行题为另一个例子查找图像旋转和缩放。相反,使用手动的方法来注册两个图像,它利用了计算机视觉系统工具箱™发现自动注册过程基于特征的技术。

在这个例子中,您将使用detectSURFFeaturesvision.GeometricTransformEstimator系统对象来恢复失真图像的旋转角度和缩放系数。然后,您将改变失真图像恢复原始图像。

步骤1:读取图像

带来的图像到工作空间。

原始= imread('cameraman.tif');imshow(原件);文本(大小(原始,2),大小(原始,1)15,...“麻省理工学院的图片由”...'字体大小',7,'水平对齐''对');

步骤2:调整大小和旋转图像

标度= 0.7;J = imresize(原始的,尺度);%尝试不同的比例因子。THETA = 30;扭曲= imrotate(J,THETA);%尝试改变角度,θ-。图中,imshow(失真的)

您可以通过改变输入图像的缩放和旋转试验。但是,请注意,是有一定限度的金额之前特征检测部未能找到足够的功能,你可以改变的规模。

第3步:查找图像之间匹配特征

检测两个图像中的特征。

ptsOriginal = detectSURFFeatures(原件);ptsDistorted = detectSURFFeatures(失真的);

提取特征描述符。

[featuresOriginal,validPtsOriginal] = extractFeatures(原始,ptsOriginal);[featuresDistorted,validPtsDistorted] = extractFeatures(扭曲,ptsDistorted);

比赛通过他们的描述功能。

indexPairs = matchFeatures(featuresOriginal,featuresDistorted);

检索对应点,每个图像的位置。

matchedOriginal = validPtsOriginal(indexPairs(:,1));matchedDistorted = validPtsDistorted(indexPairs(:,2));

显示点的比赛。注意异常值的存在。

数字;showMatchedFeatures(原始的,扭曲的,matchedOriginal,matchedDistorted);标题(“推定的匹配点(包括异常值)”);

步骤4:估算转化

找到对应于使用所述统计稳健M估计采样一致性(MSAC)算法,这是RANSAC算法的一个变型的匹配点对的变换。而计算的变换矩阵它去除异常值。您可能会看到,因为由MSAC算法采用随机抽样的变换计算的不同的结果。

[TForm的,inlierDistorted,inlierOriginal] = estimateGeometricTransform(...matchedDistorted,matchedOriginal,'相似');

在变换矩阵的计算中使用的显示匹配点对。

数字;showMatchedFeatures(原始的,扭曲的,inlierOriginal,inlierDistorted);标题(“匹配点(正常值只)”);传说('ptsOriginal''ptsDistorted');

步骤5:求解比例和角度

使用几何变换,TForm的,恢复比例和角度。由于我们计算从失真的转变到原始图像中,我们需要计算它的逆恢复失真。

让SC =规模* COS(THETA)让SS =规模* SIN(THETA)
然后,Tinv的= [SC -ss 0;SS SC 0;TX TY 1]
其中tx和ty分别为x和y的翻译。

计算逆变换矩阵。

TINV = tform.invert.T;SS = Tinv的(2,1);SC = Tinv的(1,1);scale_recovered = SQRT(β* SS + SC * SC)theta_recovered = ATAN2(SS,SC)* 180 / PI
scale_recovered =单0.7010 theta_recovered =单30.2351

回收的价值应与选定的规模和角度值步骤2:调整大小和旋转图像

步骤6:恢复原始图像

通过将失真图像恢复原始图像。

outputView = imref2d(大小(原始));回收= imwarp(扭曲,TForm的,'OutputView',outputView);

比较恢复原版的看着他们并排侧蒙太奇。

人物,imshowpair(原件,恢复,'剪辑'

恢复(右)图像质量不匹配原版的(左)图像,因为失真和恢复过程的。特别地,图像收缩导致的信息丢失。周围的边缘伪影是由于变换的有限精度。如果你要检测更多的积分第4步:查找图像之间匹配特征,转型会更准确。例如,我们可以使用一个角落探测器,detectFASTFeatures,以补充其发现斑点的SURF特征检测器。图像内容和图像大小也影响的检测到的特征的数量。

是这个主题有帮助吗?