OpenCV:我是否正确地声明了矩阵?

时间:2012-10-04 06:53:25

标签: c++ opencv for-loop matrix type-conversion

我想改变:

int q[10] ;
double weight[10];

for ( int i = 0; i < 10; i ++ ) 
{
    q ++ ;
    weight[i] = 10;
}

进入cv :: Mat形式,所以我这样做了:

cv::Mat q = cv::Mat ( 1, 10, CV_8UC3 );
cv::Mat w = cv::Mat ( 1, 10, CV_8UC3 );    

for ( int i = 0; i < 10; i ++ )
{
    uchar* p = q.ptr ( i );
    *p += 1; 
}
    weight.setTo ( 10 );

代码编译没有错误,但由于我没有任何参考来判断结果,我怀疑我的更改可能存在错误。或者我在这里干什么?谢谢。

1 个答案:

答案 0 :(得分:1)

int q[10]将更改为cv::Mat q = cv::Mat(1,10,CV_32SC1);

double w[10]将更改为cv::Mat w = cv::Mat(1,10,CV_64FC1);

您可以访问原始指针:

int* qPtr = q.ptr<int>();

double* wPtr = w.ptr<double>();