C++vector<vector<double>> and opencv Mat

15 篇文章 0 订阅

最近在写Opencv程序,用到离散小波变换,但Opencv没有提供离散小波变换函数。但找到了离散小波变换函数的C++程序,发现在C++中,可以用 vector<vector<double>> 来表示矩阵。

int Height = 200;
int Width = 400;
vector<vector<double>> signal2(Height,Width);   
cout<<"矩阵的行数"<<signal2.size()<<endl;
cout<<"矩阵的列数"<<signal2[0].size()<<endl;

vector<vector<double>>与Mat数据类型可以进行转换

//Mat 转换为vector<vector<double>>
void Mat2vector(Mat &src,vector<vector<double>> &dst)
{  
    assert( src.rows== dst.size());
    MatIterator_<double> it, it2;
                it = src.begin<double>();
                it2 = src.end<double>();
    for(int i=0;i<src.rows;i++)
    {
        for(int j=0;j<src.cols;j++)
        {
          dst[i][j]=*it++;
        }
    }
}
//vector<vector<double>> 转换为Mat
 void Vector2Mat(vector<vector<double>>src,Mat dst)
 {
     assert( dst.rows== src.size());
     MatIterator_<double> it = dst.begin<double>();        
     for(int i=0;i<src.size();i++)
     {
         for(int j=0;j<src[0].size();j++)
         {
           *it=src[i][j];
            it++;
         }
     }
 }

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值