我要改变:
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 );
代码编译没有错误,但由于我没有任何判断结果的引用,我怀疑我的更改可能有错误。还是我在这里做所有事情?谢谢。
最佳答案
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>();
关于c++ - OpenCV:我是否正确声明了矩阵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12721798/