Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在OpenCV中使用子矩阵生成大矩阵_Opencv - Fatal编程技术网

在OpenCV中使用子矩阵生成大矩阵

在OpenCV中使用子矩阵生成大矩阵,opencv,Opencv,我喜欢用5x5矩阵做一个11x11矩阵,如下所示。 还有比这更好的办法吗 int csz = 5; Mat zz = Mat::zeros(csz, csz, CV_32FC1); Mat oo = Mat::ones(csz, csz, CV_32FC1); Mat hh = 0.5 * Mat::ones((csz*2 + 1), 1, CV_32FC1);//column matrix cv::Mat chkpat1((csz * 2 + 1), (csz * 2 + 1), CV_32F

我喜欢用5x5矩阵做一个11x11矩阵,如下所示。 还有比这更好的办法吗

int csz = 5;
Mat zz = Mat::zeros(csz, csz, CV_32FC1);
Mat oo = Mat::ones(csz, csz, CV_32FC1);
Mat hh = 0.5 * Mat::ones((csz*2 + 1), 1, CV_32FC1);//column matrix
cv::Mat chkpat1((csz * 2 + 1), (csz * 2 + 1), CV_32FC1);
chkpat1(Range(0, 5),Range(0, 5)) = zz;//first quadrant
chkpat1(Range(0, 5),Range(6, 11)) = oo;//second quadrant
chkpat1(Range(5, 11),Range(0, 5)) = oo;//third quadrant
chkpat1(Range(6, 11),Range(6, 11)) = oo;//fourth quadrant
chkpat1(Range(0, 11),Range(5, 6)) = hh;//middle column  
chkpat1(Range(5, 6),Range(0, 11)) = hh.t();//middle row

这比较短,因此从这个意义上讲,它更好:

   cv::Mat chkpat1(11, 11, CV_32FC1, cv::Scalar(1.0f));
   chkpat1(cv::Rect(0, 0, 5, 5)) = cv::Scalar(0.0f);
   chkpat1(cv::Rect(0, 5, 11, 1)) = cv::Scalar(0.5f);
   chkpat1(cv::Rect(5, 0, 1, 11)) = cv::Scalar(0.5f);
这会产生(我认为这是您想要的):

0    0    0    0    0    0.5    1    1    1    1    1
0    0    0    0    0    0.5    1    1    1    1    1
0    0    0    0    0    0.5    1    1    1    1    1
0    0    0    0    0    0.5    1    1    1    1    1
0    0    0    0    0    0.5    1    1    1    1    1
0.5  0.5  0.5  0.5  0.5  0.5  0.5  0.5  0.5  0.5  0.5
1    1    1    1    1    0.5    1    1    1    1    1
1    1    1    1    1    0.5    1    1    1    1    1
1    1    1    1    1    0.5    1    1    1    1    1
1    1    1    1    1    0.5    1    1    1    1    1
1    1    1    1    1    0.5    1    1    1    1    1