Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opencv 如何获得精确的深度图? 使用名称空间std; 使用名称空间cv; int main(int argc,字符**argv) { 长lframecount=0; //加载视频 视频捕获捕获1(argv[1]); 视频捕获捕获2(argv[2]); 我建议你使用这个函数_Opencv_Image Processing - Fatal编程技术网

Opencv 如何获得精确的深度图? 使用名称空间std; 使用名称空间cv; int main(int argc,字符**argv) { 长lframecount=0; //加载视频 视频捕获捕获1(argv[1]); 视频捕获捕获2(argv[2]); 我建议你使用这个函数

Opencv 如何获得精确的深度图? 使用名称空间std; 使用名称空间cv; int main(int argc,字符**argv) { 长lframecount=0; //加载视频 视频捕获捕获1(argv[1]); 视频捕获捕获2(argv[2]); 我建议你使用这个函数,opencv,image-processing,Opencv,Image Processing,但是首先:你校准过你的相机吗? 也许您应该查看有关如何使用OpenCv校准相机的教程,以及关于如何计算深度贴图(也称为视差贴图)的教程.请发布您的图像。我无法发布我的图像。如何做???将其放在其他服务器上,并在那里发布一个指向它的链接。请参见此答案:无需校准,我们也可以正确地进行图像校正??我使用surf功能获得基本矩阵,然后找到校正后的图像。现在我正在尝试获取视差图。我使用cvB: Fig StudioRealdBasm BM,但我不能得到正确的结果。图像中有很多噪音。在拍摄图像时有没有考虑?

但是首先:你校准过你的相机吗?


也许您应该查看有关如何使用OpenCv校准相机的教程,以及关于如何计算深度贴图(也称为视差贴图)的教程.

请发布您的图像。我无法发布我的图像。如何做???将其放在其他服务器上,并在那里发布一个指向它的链接。请参见此答案:无需校准,我们也可以正确地进行图像校正??我使用surf功能获得基本矩阵,然后找到校正后的图像。现在我正在尝试获取视差图。我使用cvB: Fig StudioRealdBasm BM,但我不能得到正确的结果。图像中有很多噪音。在拍摄图像时有没有考虑?/你是用立体视觉来校正一个图像吗?如果是的话,也许你应该考虑修改你的问题并包括确切的问题。
using namespace std;
using namespace cv;

int main(int argc, char**argv)
{
    long lframecount=0;
    //load the videos
    VideoCapture capture1(argv[1]); 
    VideoCapture capture2(argv[2]);
    cout << argv[1]  << endl;
    cout << argv[2]  << endl;

    if(!capture1.isOpened()||!capture2.isOpened())
    {
        cout<<"cant load stereo video";
        return -1;
    }

    Mat frame1,frame2;
    capture1>> frame1;
    capture2>> frame2;
    long framecount1= capture1.get(CV_CAP_PROP_FRAME_COUNT);
    long framecount2= capture2.get(CV_CAP_PROP_FRAME_COUNT);



    namedWindow("depthmap",cv::WINDOW_NORMAL);


    cv::Mat disp;
    cv::Mat vdisp;
    for(long i=1;i<5;i++)
    {
        lframecount++;
        int number=lframecount;
        string frame;
        std::ostringstream convert;
        convert<<number;
        frame = convert.str();
        //cout<<lframecount<<"\n";
        capture1 >> frame1;
        capture2 >> frame2;
        cv::StereoVar stereo;

        stereo.minDisp=-80;
        stereo.maxDisp=80;
        stereo(frame1,frame2,disp);
        double min, max;
        minMaxLoc(disp, &min, &max);
        disp.convertTo(vdisp, CV_8U, -255.0/max, 255);

        std::cout<<"framecount :"<< frame<<std::endl;
        imshow("depthmap",vdisp);
        waitKey(30);
        write << vdisp;
        //waitKey(30);
        //if(waitKey(0))
        //break;
    }
    write.release();
    cv::destroyAllWindows();
    return 0;
}