c++ - OpenCV:我是否正确声明了矩阵?

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

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

最佳答案

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/

相关文章:

c++ - 如何从 C++ 中的类方法正确返回 std::type_info

C++:在对象范围之外调用析构函数?

c++ - VS 2010 C++ 错误 LNK2019 : unresolved external symbol "public: __thiscall

algorithm - For - 循环在特定条件下执行

c++ - 如何在虚幻引擎中获取 "../"的完整路径?

python - FindContours 仅支持 8uC1 和 32sC1 图像

video - openCV cvCreateVideoWriter 总是返回 null

opencv - 为 python3 安装 opencv

for-loop - for循环init语句中的变量声明

java - For 循环和 if 语句的行为很奇怪