Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.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 什么';不失真点有什么问题吗 float k[]={1531.49,01267.78,01521.439952.078,0,0,1}; 浮点数d[]={-0.27149,0.15384,0.0046,-0.0026}; CvMat camera1=CvMat(3,3,CV_32FC2,k); CvMat distCoeffs1=CvMat(1,4,CV_32FC2,d); 常量int npoints=4;//指定的点数 //点初始化。 //在本例中,只有2个PONT,在实际代码中,它们是从文件中读取的。 浮点输入_点[npoints][4]={{0,0},{25601920};//其余的将设置为0 CvMat*src=cvCreateMat(1,npoints,CV_32FC2); CvMat*dst=cvCreateMat(1,npoints,CV_32FC2); //填充src矩阵 float*src_ptr=(float*)src->data.ptr; 对于(int-pi=0;pi_Opencv - Fatal编程技术网

Opencv 什么';不失真点有什么问题吗 float k[]={1531.49,01267.78,01521.439952.078,0,0,1}; 浮点数d[]={-0.27149,0.15384,0.0046,-0.0026}; CvMat camera1=CvMat(3,3,CV_32FC2,k); CvMat distCoeffs1=CvMat(1,4,CV_32FC2,d); 常量int npoints=4;//指定的点数 //点初始化。 //在本例中,只有2个PONT,在实际代码中,它们是从文件中读取的。 浮点输入_点[npoints][4]={{0,0},{25601920};//其余的将设置为0 CvMat*src=cvCreateMat(1,npoints,CV_32FC2); CvMat*dst=cvCreateMat(1,npoints,CV_32FC2); //填充src矩阵 float*src_ptr=(float*)src->data.ptr; 对于(int-pi=0;pi

Opencv 什么';不失真点有什么问题吗 float k[]={1531.49,01267.78,01521.439952.078,0,0,1}; 浮点数d[]={-0.27149,0.15384,0.0046,-0.0026}; CvMat camera1=CvMat(3,3,CV_32FC2,k); CvMat distCoeffs1=CvMat(1,4,CV_32FC2,d); 常量int npoints=4;//指定的点数 //点初始化。 //在本例中,只有2个PONT,在实际代码中,它们是从文件中读取的。 浮点输入_点[npoints][4]={{0,0},{25601920};//其余的将设置为0 CvMat*src=cvCreateMat(1,npoints,CV_32FC2); CvMat*dst=cvCreateMat(1,npoints,CV_32FC2); //填充src矩阵 float*src_ptr=(float*)src->data.ptr; 对于(int-pi=0;pi,opencv,Opencv,我希望使用CVUnsortPoints函数。并使用示例代码进行测试。当我使用VS2012运行时,它不起作用。它说“src.size与dst.size不匹配”。因为我是OpenCV的新手。有人能帮我吗? 非常感谢。 vs2012 的运行结果再次, > 使用OpenCV的C++ API,而不是被禁止的C 1: float k[]={1531.49,0,1267.78,0,1521.439,952.078,0,0,1}; float d[]={-0.27149,0.1538

我希望使用CVUnsortPoints函数。并使用示例代码进行测试。当我使用VS2012运行时,它不起作用。它说“src.size与dst.size不匹配”。因为我是OpenCV的新手。有人能帮我吗? 非常感谢。
vs2012

的运行结果再次,<强> > <强>使用OpenCV的C++ API,而不是被禁止的C 1:

        float  k[]={1531.49,0,1267.78,0,1521.439,952.078,0,0,1};
    float  d[]={-0.27149,0.15384,0.0046,-0.0026};

    CvMat camera1=cvMat( 3, 3, CV_32FC2, k );
    CvMat distCoeffs1=cvMat(1,4,CV_32FC2,d);
    const int npoints = 4; // number of point specified 

// Points initialization. 
// Only 2 ponts in this example, in real code they are read from file.

float input_points[npoints][4] = {{0,0}, {2560, 1920}}; // the rest will be set to 0

CvMat * src = cvCreateMat(1, npoints, CV_32FC2);
CvMat * dst = cvCreateMat(1, npoints, CV_32FC2);

// fill src matrix
float * src_ptr = (float*)src->data.ptr;
for (int pi = 0; pi < npoints; ++pi) {
    for (int ci = 0; ci < 2; ++ci) {
        *(src_ptr + pi * 2 + ci) = input_points[pi][ci];
    }
}

cvUndistortPoints(src, dst, &camera1, &distCoeffs1);

请避免使用opencv遗留的c-api。哦,很抱歉没有注意到这一点。我认为dst变量应该有四个元素。正如您所看到的,结果可能是错误的。您能帮助我吗?
Mat_<float> cam(3,3); cam << 1531.49,0,1267.78,0,1521.439,952.078,0,0,1;
Mat_<float> dist(1,5); dist <<-0.27149,0.15384,0.0046,-0.0026;

const int npoints = 4; // number of point specified 

// Points initialization. 
// Only 2 ponts in this example, in real code they are read from file.
Mat_<Point2f> points(1,npoints);
points(0) = Point2f(0,0);
points(1) = Point2f(2560, 1920);

Mat dst; // leave empty, opencv will fill it.
undistortPoints(points, dst, cam, dist);

cerr << dst;
[-0.90952414, -0.69702172, 0.92829341, 0.69035494, -0.90952414, -0.69702172, -0.90952414, -0.69702172]