在c++中直接检测角点并返回显示
时间: 2024-03-02 15:54:25 浏览: 17
可以使用OpenCV库中的函数cv::goodFeaturesToTrack()来直接检测角点,并使用cv::drawKeypoints()函数将检测到的角点绘制在原图像上。
以下是一个示例代码:
```c++
#include <opencv2/opencv.hpp>
#include <iostream>
int main()
{
cv::Mat image = cv::imread("test.jpg");
cv::Mat grayImage;
cv::cvtColor(image, grayImage, cv::COLOR_BGR2GRAY);
std::vector<cv::Point2f> corners;
cv::goodFeaturesToTrack(grayImage, corners, 100, 0.01, 10);
for (size_t i = 0; i < corners.size(); i++)
{
cv::circle(image, corners[i], 3, cv::Scalar(0, 0, 255), -1);
}
cv::imshow("Corners", image);
cv::waitKey();
return 0;
}
```
这段代码首先读入一张图像,然后将图像转换为灰度图像。接着使用cv::goodFeaturesToTrack()函数检测图像中的角点,并将检测到的角点存储在std::vector<cv::Point2f>类型的变量corners中。最后使用cv::drawKeypoints()函数将检测到的角点绘制在原图像上,并显示出来。