shape_based_matching
shape_based_matching copied to clipboard
[问题]关于相似度函数
我是计算机视觉领域的新手。
我阅读了源代码,但仍然不了解相似功能的概念
static void similarity(const std::vector<Mat> &linear_memories, const Template &templ, Mat &similaritiesResult, Size size, int T)
您能否给我一些提示,以帮助您理解该功能的整体概念?
非常感谢。
是这样,一个模板由n个点向对组成;模板在图像上滑动,在一个滑窗中,模板每个点在图像相应位置上会根据方向差异打分,所有点的平均得分就是一个滑窗的相似度
- 相似度函数:你可以从 相似度入手, 他评价的就是 两个方向差异的打分,比如 差异22.5度 打分为1 或者 最大的分-1 。这个标识的是 模板一个特征点和 当前图像一个位置点的 差异。
- 一次滑窗或者一个对应模板区域得分:整个模板特征点 按照位置, 累加到一个下标下,每一个特征点的分数累加 ,得分/(点数*最大分值), 就是一次滑窗或者说一个位置的得分。
谢谢。 我基本上可以理解。
我发现它具有与火车图像相同的图像。 检测相似度小于100%,有时仅为70%。 实施的相似性正确吗? 还是如何提高相似度?
非常感谢。
感觉相似性感觉没问题,仅为70%, 可以调调参数看看
谢谢。 您能给我一些改变参数的提示吗? 至少我认为在同一张图片上,相似度结果应该超过99%。 但就我而言,只有78%-这并不可靠。
训练匹配都是同一张图片一般不会这样;有例子可以说明吗?
我附上了图片
是指一个二维码训练,匹配另外的二维码吗?这种形状并不是完全一样的。识别的话建议直接找一些二维码开源库
不,这是同一张图片。 他们就是一个。
可以把匹配后的模板点画出来看看
我可以绘制与模板匹配的所有特征点。 不可能知道哪些功能匹配,哪些不匹配。 您能告诉我如何找到适合训练的参数表: -number of features -weak/strong threshold -pyramid levels 谢谢
一般来说默认的就好;主要需要根据形状角度和尺度可能的变化设置好范围