为什么opencv特征点不是整数?

问题描述 投票:0回答:1

我有点困惑为什么特征点的坐标是浮点数而不是整数。既然所有像素都是整数,那么有一个浮点特征点不是很奇怪吗?

谢谢!

例如:

< cv2.KeyPoint >
special variables
function variables
angle: 313.130859375
class_id: -1
octave: 2
pt:
(516.9600219726562, 123.84000396728516)
response: 0.0013209185563027859
size: 44.6400032043457
opencv computer-vision feature-extraction
1个回答
0
投票

我明白哪里会产生混乱。你是对的:对于人类来说,像素是由整数定义的——你要么有像素,要么没有;没有中间。然而,如果你仔细想想,计算机并不局限于将坐标视为整数;而是将坐标视为整数。他们在执行操作时没有意识到像素。对他们来说,可以用浮点坐标在几乎无限精度的世界中设置点。只有当计算机渲染计算时,它们才必须将计算结果向上或向下舍入以适应我们屏幕的限制(即,将它们适合像素)。使用浮点作为坐标值允许计算机提高各种任务的准确性,从执行大型操作(即图像变换、缩放、旋转...)到标准化坐标(OpenCV 执行的非常常见的任务)。话虽如此,我不得不承认将坐标存储为浮点比整数对应物使用更多的计算能力。

您可能想查看 OpenCV 关于点的文档 或这个 关于同一主题的已回答问题。相反,您可能想看一篇捍卫整数坐标相对于浮点坐标的优越性的文章。总的来说,选择将坐标存储为浮点还是整数在很大程度上取决于您要执行的任务以及您想要建立的准确性与效率平衡。就 OpenCV 而言(在撰写本答案时),他们认为浮点方法是一种更明智的方法。希望这可以帮助!愿代码与您同在...

© www.soinside.com 2019 - 2024. All rights reserved.