我有这个代码:
mapx.create(image.size(), CV_32FC1);
mapy.create(image.size(), CV_32FC1);
在此之后,mapx和mapy中的值是多少?所有数据都为零吗?
这种类型的初始化:怎么样
cv::Mat mapx(image.size(), CV_32FC1);
我是否需要明确地将每个元素的值设置为零?
如何将每个元素的值设置为-1?
create
之后的数据应该是未定义的。事实上,你只是在分配内存。
cv::Mat mapx(image.size(), CV_32FC1);
与完全一样
cv::Mat1f mapx(image.size());
和
cv::Mat mapy;
mapy.create(image.size(), CV_32FC1);
您可以分配一个初始值(例如-1(,如下所示:
cv::Mat1f(images.size(), -1.f);
关于你的主要问题我应该初始化一个cv::Mat吗?答案是,通常你不需要
代替书写:
Mat color;
...
Mat gray(color.rows, color.cols, color.depth());
cvtColor(color, gray, CV_BGR2GRAY);
你可以简单地写:
Mat color;
...
Mat gray;
cvtColor(color, gray, CV_BGR2GRAY);
您可以查看opencv文档:
Mat::zeros
Mat::ones
Mat A = Mat::ones(100, 100, CV_8U)*3; // make 100x100 matrix filled with 3.
http://docs.opencv.org/modules/core/doc/basic_structures.html#mat-零
如何将每个元素的值设置为-1?
我想是这样的:
Mat A = Mat::ones(100, 100, CV_8U)*-1; // make 100x100 matrix filled with -1.