在cpp中使用OpenCv
我需要通过用额外的零填充来将给定Mat内核的大小增加到任何给定图像的大小。
Mat kernel = (Mat_<double>(3,3) << 1.36, 0.062, -0.921,
-0.644198, 1.10, -0.17,
-0.072951, -1.81485, 2.806);
我在这个post中找到了用零填充整个数组的方法,但我也希望将值保存在内核中。
答案 0 :(得分:0)
就像下面这么简单。
// this is the input image
cv::Mat img(100, 100, CV_64FC1);
cv::Mat kernel = (cv::Mat_<double>(3, 3) << 1.36, 0.062, -0.921,
-0.644198, 1.10, -0.17,
-0.072951, -1.81485, 2.806);
cv::Mat kernelNew = cv::Mat::zeros(img.size(), CV_64FC1);
kernel.copyTo(kernelNew(cv::Rect(0, 0, kernel.cols, kernel.rows)));
kernel = kernelNew;