gpt4 book ai didi

python - OpenCV 将关键点转换为像素坐标

转载 作者:行者123 更新时间:2023-12-01 09:27:27 29 4
gpt4 key购买 nike

我正在尝试从给定的cv::KeyPoint中提取像素坐标。该类有一个名为 pt 的变量,其类型为 cv::Point2f,它只是一个包含两个浮点的元组。

我不确定将 cv::Point2f 转换为 cv::Point2i 是否有效,因为我在文档中找不到这些 float 代表什么。

我正在尝试在python中执行此操作,但我也找不到适用于python的正确OpenCV 3文档。

我的代码:

import cv2

feature_detector = cv2.xfeatures2d.SURF_create()
key_points = feature_detector.detect(img, None)

# this is a list of float tuples e.g. (100.3224, 451.2334)
float_coordinates = list(map(lambda key_point: key_point.pt))

# pixel_coordinates = ?

最佳答案

回答我自己的问题:

看起来cv::Point2f是子像素坐标。只需将 float 四舍五入到最接近的整数就应该可以正常工作。

有一个 OpenCV 函数已经可以执行此操作,名为 cv::cvRound .

这实际上就是 OpenCV 在 /modules/features2d/src/draw.cpp 中的函数 cv::_drawKeypoint 中所做的事情。

关于python - OpenCV 将关键点转换为像素坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50264558/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com