在图像上的矩形区域之外填充黑色
Filling black color outside of rectangle area on image
>Use OpenCV 3.2
需要用黑色填充图像的侧面。
我为每个参与方创建矩形对象。并简单地将其绘制在图片上。但解决方案似乎很麻烦。
// Border 100 px
cv::Rect top_rect(0, 0, img.size().width, 100)
...
cv::rectangle(img, top_rect, cv::Scalar(0, 0, 0), CV_FILLED);
cv::rectangle(img, bot_rect, cv::Scalar(0, 0, 0), CV_FILLED);
cv::rectangle(img, left_rect, cv::Scalar(0, 0, 0), CV_FILLED);
cv::rectangle(img, right_rect, cv::Scalar(0, 0, 0), CV_FILLED);
我找到了以下解决方案:
Rect roi(100, 100, 600, 400);
Mat result_img = img(roi);
但是此解决方案会更改图像的大小。 copyMakeBorder
- 也是调整大小。我需要:在矩形外取一个区域并用黑色填充它。图像尺寸应保持不变。
OpenCV中有现成的函数吗?
您可以使用的一种
方法是使用蒙版复制图像:
inputMat.copyTo(outputMat, maskMat);
maskMat
是具有相同图像大小但二进制的cv::Mat
。ROI 应包含像素值 1,其余像素值应为 0。
相关文章:
- 在c++中用vector填充一个简单的动态数组
- 如何使用用户输入在C++中正确填充2D数组
- 如何找到大小'x'数组是否完全填充,在C++?
- Cuda C++:设备上的Malloc类,并用来自主机的数据填充它
- 通过for循环使用用户输入填充列表
- 根据用户输入用字母填充矢量,并将"开始"和"结束"放在四肢
- 如何正确填充在堆上分配的二维数组?
- 将数字转换为填充字符串
- 有没有办法在一行中填充矢量图
- 用C++中的数字和条件填充向量
- 用真值填充矢量
- 使用结构成员指针在C++中填充结构
- 流填充字符的默认定位
- 使用不同算法的 PKCS1v15 填充进行加密 ++ 签名
- C++:使用缓冲区中的数据填充结构
- 如何将零填充的多维数组传递给 C++ 中的函数?
- Cryptopp:获取密码输入的填充字符串
- 填充上编译器生成的复制构造函数之间的不一致
- 在图像上的矩形区域之外填充黑色
- 在C++中,在图像周围填充黑色边框是最有效的方法