OpenCV:设置图像边框,没有填充

时间:2015-12-11 12:01:22

标签: c++ opencv

如何将给定尺寸的图像边框设置为黑色,没有填充,即我只想将图像边框设置为黑色(零),输出将是与源尺寸相同的图像。

2 个答案:

答案 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);