我想改变:
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 );
代码编译没有错误,但由于我没有任何参考来判断结果,我怀疑我的更改可能存在错误。或者我在这里干什么?谢谢。
答案 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>();