opencv绘制SIFT特征点的C++代码
时间: 2023-06-12 08:07:06 浏览: 167
以下是使用OpenCV绘制SIFT特征点的C代码示例:
```c
#include <opencv2/opencv.hpp>
#include <opencv2/xfeatures2d.hpp>
using namespace cv;
using namespace cv::xfeatures2d;
int main()
{
// 读取图像
Mat img = imread("test.jpg");
// 创建SIFT检测器
Ptr<SIFT> detector = SIFT::create();
// 检测图像中的SIFT特征点
std::vector<KeyPoint> keypoints;
detector->detect(img, keypoints);
// 绘制特征点
Mat img_keypoints;
drawKeypoints(img, keypoints, img_keypoints);
// 显示图像
imshow("SIFT keypoints", img_keypoints);
waitKey(0);
return 0;
}
```
在代码中,我们首先读取一张图像,然后使用OpenCV的SIFT检测器检测图像中的SIFT特征点。接着,我们使用`drawKeypoints`函数绘制特征点,并显示绘制后的图像。最后,我们使用`waitKey`函数等待用户按下任意键,以便关闭窗口。
需要注意的是,我们需要在编译时链接OpenCV库。如果您使用的是CMake进行编译,可以将以下代码添加到CMakeLists.txt文件中:
```
find_package(OpenCV REQUIRED)
target_link_libraries(your_project_name ${OpenCV_LIBS})
```
阅读全文