Как заполнить массив (cv::Mat
) нулями в OpenCV?
Массив Pad с нулями-openCV
Ответ 1
Вот способ сделать это
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)));
Ответ 2
Другим способом прокладки изображения является использование copyMakeBorder:
C++: void copyMakeBorder(InputArray src, OutputArray dst, int top, int bottom, int left, int right, int borderType, const Scalar& value=Scalar() )
Тогда заполнение нулями просто так:
Mat image,image_pad;
copyMakeBorder(image,image_pad,1,1,1,1,BORDER_CONSTANT,Scalar(0));
Наконец, вот учебник Добавление границ к вашим изображениям.