opencv 使用 vector<Point2f> 显示图片 c++实例
时间: 2024-09-27 13:05:01 浏览: 32
在OpenCV中,`vector<Point2f>`通常用于保存图像中的关键点或者兴趣区域的位置。如果你想用这样的向量显示一个图片,你需要做以下步骤:
首先,假设你已经加载了一个`cv::Mat`类型的图片,并且有一个`vector<Point2f>`叫做`keyPoints`,其中包含了关键点的位置。
```cpp
// 加载图片
cv::Mat image = cv::imread("image.jpg", cv::IMREAD_COLOR);
// 确保关键点数量与图片对应
if (keyPoints.size() == 0 || keyPoints.empty()) {
std::cout << "No key points found." << std::endl;
} else if (keyPoints.size() != image.rows) {
std::cout << "Number of keypoints does not match the image height." << std::endl;
}
// 如果一切正常,我们可以遍历关键点并绘制它们
cv::Mat output;
output.create(image.size(), CV_8UC3); // 创建一个新的灰度图作为输出
cv::circle(output, keyPoints[i], 5, cv::Scalar(0, 0, 255), -1); // 绘制一个蓝点
cv::imshow("Key Points on Image", output); // 显示带有关键点标记的图像
cv::waitKey(); // 等待用户按键
```
这里,我们创建了一个新的`cv::Mat`输出,然后对每一个关键点应用了`cv::circle`函数,用蓝色圆圈标记出来。最后使用`cv::imshow`展示结果。
阅读全文