如何将给定尺寸的图像边框设置为黑色,没有填充,即我只想将图像边框设置为黑色(零),输出将是与源尺寸相同的图像。
答案 0 :(得分:7)
您只需在图片上绘制一个黑色矩形:
cv::Mat image;
cv::Rect border(cv::Point(0, 0), image.size());
cv::Scalar color(0, 0, 0);
int thickness = 1;
cv::rectangle(image, border, color, thickness);
答案 1 :(得分:3)
您可以将copyMakeBorder与BORDER_ISOLATED标志一起使用。
cv::Mat image = cv::imread("lena.png");
cv::Mat output;
const int border = 10;
const int borderType = cv::BORDER_CONSTANT | cv::BORDER_ISOLATED;
const cv::Scalar value(0, 0, 0);
const cv::Rect roi(border, border, image.cols-2*border, image.rows-2*border);
cv::copyMakeBorder(image(roi), output, border, border, border, border, borderType, value);
cv::imshow("input", image);
cv::imshow("output", output);
cv::waitKey(0);