zoukankan      html  css  js  c++  java
  • opencv数据类型和格式的坑

    //cv::Mat uvp = cv::Mat::zeros(2, probp.size(), CV_8UC1);
    cv::Mat uvp = cv::Mat::zeros(2, probp.size(), CV_64FC1);//data-type...
    for (unsigned int i = 0; i <probp.size(); i++ )
    {
    uvp.at<float>(0, i) = probp[i].x;
    uvp.at<float>(1, i) = probp[i].y;
    }
    cv::Mat ipmps, xyp;
    imagetoground(uvp, xyp, h, roll, pitch, camera_param_KK);

    		//cv::Mat uvp = cv::Mat::zeros(2, probp.size(), CV_8UC1);
            cv::Mat uvp = cv::Mat::zeros(2, probp.size(), CV_64FC1);//data-type...
    		for (unsigned int i = 0; i <probp.size(); i++ )
    		{
    			uvp.at<float>(0, i) = probp[i].x;
    			uvp.at<float>(1, i) = probp[i].y;
    		}
    		cv::Mat ipmps, xyp;
    		imagetoground(uvp, xyp, h, roll, pitch, camera_param_KK);
    

      

    //imagetoground...
    void imagetoground(cv::Mat& uv,  cv::Mat& xy, double ht, double roll, double pitch, double* camera_param_KK)
    { 
    	std::cout << "111" << std::endl;
    	int height = (int)(ht*1000); //unit-mm.
    	double fx = camera_param_KK[0];
    	double fy = camera_param_KK[4];
        double cx = camera_param_KK[2]; 
    	double cy = camera_param_KK[5]; 
    	
    	double c1 = cos(pitch*PI / 180);
    	double s1 = sin(pitch*PI / 180);
    	double c2 = cos(roll*PI / 180);
    	double s2 = sin(roll*PI / 180);
         
    	cv::Mat Tf = (cv::Mat_<double>(3, 3) << fx, 0, cx,
    		 0, fy, cy,
    		 0, 0, 1);
       
    	cv::Mat Tx = (cv::Mat_<double>(3, 3) << 1, 0, 0,
    		 0, c1, s1,
    		 0, -s1, c1);
        
        cv::Mat T = Tx.inv() * Tf.inv(); 	
    	T.rowRange(0, 2) = T.rowRange(0, 2)*(-height);	
    	cv::Mat temp = cv::Mat::ones(3, uv.cols, CV_64FC1);	
    	
    	uv.copyTo(temp.rowRange(0, 2) ) ;	
    	cv::Mat xyt = T*temp;
    	xyt.rowRange(0, 1) = xyt.rowRange(0, 1) / xyt.rowRange(2, 3);
    	xyt.rowRange(1, 2) = xyt.rowRange(1, 2) / xyt.rowRange(2, 3);
    
    	xyt.rowRange(0, 2).copyTo(xy);//deep-copy...
    }
    

    注意 

    错误的描述一般是内存冲突memory crruption,abort等等...

  • 相关阅读:
    result set sql server
    [转载]:C#、.Net面试题目及答案
    [转载]:合并两个已排序好的int数组,并排序返回c#实现
    [转载]实际举例C#引用类型和值类型的区别
    mysql 性能优化方案
    oracle 并行原理深入解析及案例精粹
    创建Oracle外部表 External Table
    Oracle 分区表
    MySQL索引类型一览
    MySQL配置文件mysql.ini参数详解、MySQL性能优化
  • 原文地址:https://www.cnblogs.com/happyamyhope/p/8984368.html
Copyright © 2011-2022 走看看