OpenCV添加边框到您的图像
目标
理论
- 在前面,我们学会了使用卷积来对图像进行操作。自然产生的一个问题是如何处理边界。如果评估点位于图像的边缘,我们如何卷积它们?
- 大多数OpenCV功能是将给定的图像复制到另一个稍大的图像上,然后自动填充边界(通过下面的示例代码中解释的任何方法)。这样,可以在所需要的像素上执行卷积而没有问题(在操作完成之后,额外的填充被切割)。
- 在本节中,我们将简要介绍如何为图像定义额外的填充(边框):BORDER_CONSTANT:使用常量值(即黑色或0)来填充图像0BORDER_REPLICATE:原始边缘的行或列被复制到额外的边框。“守则”部分将会更清楚地看到这一点。
Code
- 这个程序是做什么的?
- 加载图像
- 让用户选择在输入图像中使用什么样的填充。有两个选择:
- 常数值边框:对整个边框应用一个常量值的填充。该值将随机每0.5秒更新一次。
- 复制边框:边框将从原始图像边缘的像素值复制。
- 当用户按“ESC”时程序完成
- 代码如下所示
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
Mat src, dst;
int top, bottom, left, right;
int borderType;
const char* window_name = "copyMakeBorder Demo";
RNG rng(12345);
int main(int argc, char** argv)
{
String imageName("C:/usr/opencv-test/Testpictures/sight3.jpg")