1

我想改变:

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 );

代码编译没有错误,但由于我没有任何参考来判断结果,我怀疑我的更改可能有错误。还是我在这里做所有事情?谢谢你。

4

1 回答 1

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>();

于 2012-10-04T07:11:36.487 回答