- 操作系统:ubuntu22.04
- OpenCV版本:OpenCV4.9
- IDE:Visual Studio Code
- 编程语言:C++11
算法描述
找到棋盘格角点的亚像素级准确位置
cv::find4QuadCornerSubpix 是 OpenCV 库中用于精确定位四边形四个角点亚像素位置的函数。它试图在指定的区域内找到更精确的角点位置,从而提高角点检测的准确性。这个函数通常在已经通过其他方法(例如 cv::goodFeaturesToTrack 或者 cv::cornerHarris)粗略定位了角点之后使用。
函数原型
bool cv::find4QuadCornerSubpix
(
InputArray img,
InputOutputArray corners,
Size region_size
)
参数
- 参数img: 输入图像,应该是灰度图。类型为 8-bit 或者浮点型的单通道图像。
- 参数corners: 输入/输出参数,初始的角点坐标作为输入,优化后的角点坐标作为输出。这是一个包含 (x, y) 坐标的浮点数向量。该函数会尝试根据图像数据对这些角点进行精细化调整。
- 参数region_size: 搜索窗口大小。对于每个角点,将在这个区域内的子窗口中寻找更准确的位置。
代码示例
#include <opencv2/opencv.hpp>
#include <vector>
int main()
{
// 加载图像并转换为灰度图
cv::Mat img = cv::imread( "/media/dingxin/data/study/OpenCV/sources/images/2024-12-24_13-01.png", cv