vs2015与opencv4.5.5视差图生成特征值检测
时间: 2023-11-09 09:10:33 浏览: 44
你可以使用OpenCV库中的SGBM算法来生成视差图,并使用OpenCV库中的ORB或SIFT算法来进行特征值检测。
以下是一个简单的示例代码:
```cpp
#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
Mat imgL = imread("left.png", IMREAD_GRAYSCALE);
Mat imgR = imread("right.png", IMREAD_GRAYSCALE);
// SGBM算法生成视差图
Ptr<StereoSGBM> sgbm = StereoSGBM::create(0, 64, 5, 8 * 5 * 5, 32 * 5 * 5, 1, 63, 10, 100, 32, StereoSGBM::MODE_SGBM);
Mat disp;
sgbm->compute(imgL, imgR, disp);
// 显示视差图
Mat disp8;
normalize(disp, disp8, 0, 255, NORM_MINMAX, CV_8U);
imshow("Disparity", disp8);
// ORB算法进行特征值检测
Ptr<ORB> orb = ORB::create();
std::vector<KeyPoint> keypoints;
Mat descriptors;
orb->detectAndCompute(imgL, Mat(), keypoints, descriptors);
// 显示特征点
Mat imgKeyPoints;
drawKeypoints(imgL, keypoints, imgKeyPoints);
imshow("Key points", imgKeyPoints);
waitKey(0);
return 0;
}
```
其中,`left.png`和`right.png`是左右两张图像,可以通过摄像头拍摄或从文件中读取。`compute`函数会生成视差图,`detectAndCompute`函数会进行特征值检测,并返回检测到的关键点和对应的描述子。你可以根据自己的需求调整算法的参数来获得更好的效果。
相关推荐
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)