91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 8KB
    文件類型: .cpp
    金幣: 1
    下載: 0 次
    發布日期: 2021-05-12
  • 語言: C/C++
  • 標簽: 視覺雙目??

資源簡介

關于視覺雙目的測量,網上雖然有很多資料,但是但是你懂的,網上很多資源都講的很模糊,不完整。我這個代碼完整的計算出了深度信息。前提是你標定作準了。

資源截圖

代碼片段和文件信息

#include?“opencv2/core/core.hpp“
#include?“cv.h“
#include?
#include?“opencv2/imgproc/imgproc.hpp“
#include?“opencv2/features2d/features2d.hpp“
#include?“opencv2/nonfree/nonfree.hpp“
#include?“opencv2/highgui/highgui.hpp“
#include?
#include?

using?namespace?cv;
using?namespace?std;
float?m1[3][3]?=?{{7.173874e+02?0.?3.084055e+02}{0.7.193689e+02?2.296618e+02}{0.?0.?1.}};
float?m2[3][3]?=?{{7.293169e+02?0.?3.151903e+02}{0.7.312317e+02?2.277928e+02}{0.?0.?1.}};
float?r[3][3]?=?{{9.999e-01?9.7e-03?1.37e-02}{-9.8e-03?9.999e-01?4.9e-03}{-1.36e-02?-5.0e-03?9.999e-01}};//如果自己寫這些參數的話注意里面的e不要漏了啊。被坑了好多次。
float?t[3][1]?=?{-7.89819e+01?-2.88e-029.2785e+00};
Mat?M1?=?Mat(33CV_32Fm1);
Mat?M2?=?Mat(33CV_32Fm2);
Mat?R?=?Mat(33CV_32Fr);
Mat?T?=?Mat(31CV_32Ft);

Mat?mapLx?mapLy?mapRx?mapRy;?????????????????????????//映射表
Rect?validROIL?validROIR;
Point3f?uv2xyz(Point2f?uvLeftPoint2f?uvRight);

int?main(int?argc?char**?argv)
{
????//????FileStorage?fs(“intrinsics.yml“?CV_STORAGE_READ);

????//????if(!fs.isOpened())
????//????{
????//????????printf(“Failed?to?open?file?%s\n“?“intrinsics.yml“);
????//????????return?-1;
????//????}

????//????fs[“M1“]?>>?M1;
????//????fs[“D1“]?>>?D1;
????//????fs[“M2“]?>>?M2;
????//????fs[“D2“]?>>?D2;
????//????fs.open(“extrinsics.yml“?CV_STORAGE_READ);
????//????if(!fs.isOpened())
????//????{
????//????????printf(“Failed?to?open?file?%s\n“?“extrinsics.yml“);
????//????????return?-1;
????//????}
????//????fs[“R“]?>>?R;
????//????fs[“T“]?>>?T;
????cout?<????cout?<????cout?<????cout?<

????Point3f?world_points;

????Mat?src1?=?imread(“frame1.jpg“);
????Mat?src2?=?imread(“frame0.jpg“);

????SIFT?sift;????//實例化SIFT類

????vector?keypoints1keypoints2;
????Mat?descriptors1descriptors2;
????//?descriptors為描述符,mascara為掩碼矩陣
????Mat?mascara1?mascara2;

????sift(src1mascara1keypoints1descriptors1);????//執行SIFT運算
????sift(src2mascara2keypoints2descriptors2);????//執行SIFT運算

????SiftDescriptorExtractor?extractor;

????extractor.compute(src1?keypoints1descriptors1);
????extractor.compute(src2?keypoints2descriptors2);

????FlannbasedMatcher?matcher;
????vector?matches;
????matcher.match(descriptors1descriptors2matches);
????double?max_dist?=?0;
????double?min_dist?=?1000;

????for(int?i?=?0;?i?riptors1.rows;?i++)
????{
????????double?dist?=?matches[i].distance;
????????if(dist?????????if(dist?>?max_dist)?max_dist?=?dist;
????}

????cout?<????//???cout?<
????vector?good_matches;

????int?a?=?0;
????for(int?i?=?0;?i?????{
????????if(matches[i].distance?????????{
????????????if(fabs(keypoints1[matches[i].queryIdx].pt.y?-?keypoints2[matches[i].trainIdx].pt.y)?????????????{
??????????

評論

共有 條評論

相關資源