主要内容

estgeotform2d

估计二维几何变换从匹配点对

自从R2022b

    描述

    例子

    tform= estgeotform2d (matchedPoints1,matchedPoints2,transformType)估计二维几何变换将内围层映射两个图像之间的匹配点从一个形象matchedPoints1的内围层从另一个图像匹配点matchedPoints2

    (tform,inlierIndex)= estgeotform2d (___)另外返回一个向量指定每个匹配点对一个窗或局外人使用输入参数从之前的语法。

    (tform,inlierIndex,状态)= estgeotform2d (___)此外返回一个状态码表示的函数是否可以估计一个转换,如果不是,为什么它失败了。如果你不指定状态输出时,函数返回一个错误条件,不能产生结果。

    (___)= estgeotform2d (___,名称=值)使用一个或多个名称参数指定附加选项除了参数从以前的语法的任意组合。例如,信心= 99设置信任值寻找内围层的最大数量99年

    例子

    全部折叠

    读一个图像,显示它。

    原始= imread (“cameraman.tif”);imshow(原始)标题(的“原始图像”)

    扭曲和显示转换后的图像。

    扭曲= imresize(原始,0.7);扭曲= imrotate(扭曲、31);imshow(扭曲)标题(“改变了形象”)

    检测和提取特征从原始和转换后的图像。

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

    图像之间的匹配和显示功能。

    index_pairs = matchFeatures (featuresOriginal featuresDistorted);matchedPtsOriginal = validPtsOriginal (index_pairs (: 1));matchedPtsDistorted = validPtsDistorted (index_pairs (:, 2));showMatchedFeatures(原始、扭曲、matchedPtsOriginal matchedPtsDistorted)标题(“离群值匹配的冲浪点”)

    排除异常值,估算的变换矩阵,并显示结果。

    [tform, inlierIdx] = estgeotform2d (matchedPtsDistorted matchedPtsOriginal,“相似”);inlierPtsDistorted = matchedPtsDistorted (inlierIdx:);inlierPtsOriginal = matchedPtsOriginal (inlierIdx:);showMatchedFeatures(原始、扭曲、inlierPtsOriginal inlierPtsDistorted)标题(“匹配窗点”)

    恢复使用估计转换和显示的原始图像扭曲的形象。

    outputView = imref2d(大小(原始));Ir = imwarp (tform扭曲,“OutputView”,outputView);imshow (Ir)标题(“恢复图像”)

    输入参数

    全部折叠

    从第一个图像匹配点,指定为一个2的矩阵的数量(x y坐标,或作为一个对象中描述的功能点特征类型

    从第一个图像匹配点,指定为一个2的矩阵的数量(x y坐标,或作为一个对象中描述的功能点特征类型

    转换类型,指定为“刚性”,“相似”,“仿射”,或“射影”。每个变换类型需要一个最小数量的配对的点来估计一个变换。你通常可以提高转换精度通过使用大量的配对的点。这个表显示了与每个转换关联类型的对象类型和最小数量的点转换需要的配对。

    转换类型 tform对象 最小数量的配对的点
    “刚性” rigidtform2d 2
    “相似” simtform2d 2
    “仿射” affinetform2d 3
    “射影” projtform2d 4

    数据类型:字符串

    名称-值参数

    指定可选的双参数作为Name1 = Value1,…,以=家,在那里的名字参数名称和吗价值相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。

    例子:信心= 99设置信任值寻找内围层的最大数量99年

    最大数量的随机试验,指定为一个正整数。这个值指定数量的随机函数使得试图找到匹配点对。指定一个更高的价值导致函数执行额外的计算,这就增加了发现窗的可能性。

    数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

    信心找到内围层的最大数量,指定为一个积极的数字标量范围(0,100)。增加这个值会导致函数执行额外的计算,这就增加了寻找更多的内围层的可能性。

    数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

    最大距离从一个点到相应的投影点,指定为一个积极的数字标量。MaxDistance指定的最大距离,以像素为单位,一个点可以不同的投影位置对应的点被认为是一个窗。相应的投影是基于估计变换。

    检查转换功能matchedPoints1matchedPoints2,然后计算匹配点之间的距离在每一对应用转换。如果在一对匹配点之间的距离大于MaxDistance值,然后两人被认为是一个异类的转换。如果距离小于MaxDistance,然后两人被认为是一个窗。

    一个匹配点显示在图片1和图片2。图像显示了一点从图像2预计回到图像1。

    数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

    输出参数

    全部折叠

    几何变换,作为一个返回rigidtform2d,simtform2d,affinetform2d,或projtform2d对象。

    返回的几何变换矩阵内围层的地图matchedPoints1的窗matchedPoints2。该函数返回一个对象特定于指定的转换类型transformType输入参数。

    transformType 几何变换对象
    “刚性” rigidtform2d
    “相似” simtform2d
    “仿射” affinetform2d
    “射影” projtform2d

    内围层指数,作为一个返回1逻辑向量,是对数量的点。每个元素包含一个逻辑1(真正的),这表明对应点对是一个窗,或逻辑0(),表明对应点对是个例外。

    数据类型:逻辑

    状态码,返回0,1,或2。状态码表示的函数是否可以估计的转换,如果不是,为什么它失败了。

    价值 描述
    0 没有错误
    1 matchedPoints1matchedPoints2输入不包含足够的点
    2 没有足够的内围层发现

    如果你不指定状态代码输出,函数返回一个错误如果不能产生的结果。

    数据类型:int32

    算法

    函数使用M-estimator排除异常值样本共识(MSAC)算法。MSAC算法随机样本共识的一种变体(RANSAC)算法。结果可能不是相同的运行之间由于MSAC算法的随机性质。

    引用

    [1]理查德·哈特利,安德鲁Zisserman。计算机视觉中的多视图几何。第二版》。剑桥,英国 ;纽约:剑桥大学出版社,2003年。

    [2]托,P.H.S.,和A. Zisserman. "MLESAC: A New Robust Estimator with Application to Estimating Image Geometry."计算机视觉和图像理解。78年,没有。1(2000年4月):138 - 56。https://doi.org/10.1006/cviu.1999.0832。

    扩展功能

    版本历史

    介绍了R2022b

    全部展开