填充数组为零 - openCV

A S*_*A S 11 c++ opencv

如何cv::Mat在OpenCV中用零填充数组()?

qun*_*qun 25

填充图像的另一种方法是使用copyMakeBorder函数:

 C++: void copyMakeBorder(InputArray src, OutputArray dst, int top, int bottom, int left, int right, int borderType, const Scalar& value=Scalar() )
Run Code Online (Sandbox Code Playgroud)

然后用零填充就像那样

Mat image,image_pad;
copyMakeBorder(image,image_pad,1,1,1,1,BORDER_CONSTANT,Scalar(0));
Run Code Online (Sandbox Code Playgroud)

最后,这是为图像添加边框的教程.


Sam*_*Sam 16

这是一种方法

cv::Mat img(100, 100, CV_8UC3);
cv::Mat padded;
int padding = 3;
padded.create(img.rows + 2*padding, img.cols + 2*padding, img.type());
padded.setTo(cv::Scalar::all(0));

img.copyTo(padded(Rect(padding, padding, img.cols, img.rows)));
Run Code Online (Sandbox Code Playgroud)