目标:

基于OpenCV的函数cv::copyMakeBorder给图像添加边框

函数简介:

copyMakeBorder( src, dst, top, bottom, left, right, borderType, value );

参数:

  1. src: 原图像
  2. dst: 目标图像
  3. top, bottom, left, right: 每一个边界方向上像素的宽度.在这里使用图像原始大小的 5% .
  4. borderType:边框的类型 。当前例子中位纯色或者边界的复制.
  5. value: 如果borderType 设置位 BORDER_CONSTANT, 这个将作为边框的颜色.

边框的类型

1)纯色边框

BORDER_CONSTANT,边框设置位某种单一的颜色,比如黑色

2)图像边界扩展

BORDER_REPLICATE,复制原图的边界进行扩展

代码

/*** @file copyMakeBorder_demo.cpp* @brief Sample code that shows the functionality of copyMakeBorder* @author OpenCV team*/#include "opencv2/imgproc.hpp"
#include "opencv2/imgcodecs.hpp"
#include "opencv2/highgui.hpp"using namespace cv;//![variables]
Mat src, dst;
int top, bottom, left, right;
int borderType;
const char* window_name = "copyMakeBorder Demo";
RNG rng(12345);
//![variables]/*** @function main*/
int main( int, char** argv )
{int c;//![load]src = imread( argv[1], IMREAD_COLOR ); // Load an imageif( src.empty() ){printf(" No data entered, please enter the path to an image file \n");return -1;}//![load]/// Brief how-to for this programprintf( "\n \t copyMakeBorder Demo: \n" );printf( "\t -------------------- \n" );printf( " ** Press 'c' to set the border to a random constant value \n");printf( " ** Press 'r' to set the border to be replicated \n");printf( " ** Press 'ESC' to exit the program \n");//![create_window]namedWindow( window_name, WINDOW_AUTOSIZE );//![create_window]//![init_arguments]/// Initialize arguments for the filtertop = (int) (0.05*src.rows); bottom = (int) (0.05*src.rows);left = (int) (0.05*src.cols); right = (int) (0.05*src.cols);//![init_arguments]dst = src;imshow( window_name, dst );for(;;){//![check_keypress]c = waitKey(500);if( (char)c == 27 ){ break; }else if( (char)c == 'c' ){ borderType = BORDER_CONSTANT; }else if( (char)c == 'r' ){ borderType = BORDER_REPLICATE; }//![check_keypress]//![update_value]Scalar value( rng.uniform(0, 255), rng.uniform(0, 255), rng.uniform(0, 255) );//![update_value]//![copymakeborder]copyMakeBorder( src, dst, top, bottom, left, right, borderType, value );//![copymakeborder]//![display]imshow( window_name, dst );//![display]}return 0;
}

效果


基于OpenCV给图片添加边框相关推荐

  1. 基于opencv的图片模板匹配及其简单应用

    opencv的图片模板匹配及其简单应用 我的个人博客 基础知识 基于opencv的图片模板匹配 注: python及其相关包的安装不在讨论范围内 opencv提供了图片模板匹配的方法, cv2.mat ...

  2. speedoffice(PPT)怎么给图片添加边框

    PPT怎么给图片添加边框呢?看看小编是怎么操作的吧 首先,用speedoffice打开PPT文件,光标选中需要添加边框的图片,如图: 然后,在右侧工具栏选择"形状设置",并在设置里 ...

  3. photoshop图片添加边框

    经常要给图片添加边框,这里记录一下. 复制图层 打开photoshop窗口,拖进一张jpg图片: 菜单[编辑->描边] 文件[存储->jpg] 即可.

  4. python利用opencv去除图片logo_python 基于opencv去除图片阴影

    一.前言 如果你自己打印过东西,应该有过这种经历.如果用自己拍的图片,在手机上看感觉还是清晰可见,但是一打印出来就是漆黑一片.比如下面这两张图片: 因为左边的图片有大片阴影,所以打印出来的图片不堪入目 ...

  5. 图片添加边框工具:AKVIS ArtSuite for Mac

    你也想为你的图片添加各种精美的边框吗?akvis artsuite mac破解版是一款用于装饰照片的工具,可以非常方便的为照片或者图片添加上精美的相框或者边框!程序可独立运行,也可以作为Photosh ...

  6. 图片添加边框和文字怎么弄?图片编辑在线教学

      大家平时在拍完照片后,会对它进行一些编辑处理吗?像我每次拍完照,都会对图片进行一些后期处理,有时也会给图片添加一些边框或者文字,美化图片并增加图片信息量.那你们平时都是怎么给图片加上边框和文字的呢 ...

  7. 给图片加边框源代码c语言,OpenCV实现给图片添加边框功能

    目标: 基于OpenCV的函数cv::copyMakeBorder给图像添加边框 函数简介: copyMakeBorder( src, dst, top, bottom, left, right, b ...

  8. OpenCV2学习笔记(十四):基于OpenCV卡通图片处理

    得知OpenCV有一段时间.除了研究的各种算法的内容.除了从备用,据导游书籍和资料,尝试结合链接的图像处理算法和日常生活,第一桌面上(随着摄像头)完成了一系列的视频流处理功能.开发平台Qt5.3.2+ ...

  9. android图像处理系列之五-- 给图片添加边框(中)

    前面一篇讲到给图片加边框的方式,只能给图片加一些有规则的边框,如果想加一些比较精美的效果,就有点麻烦了.下面就给出解决这个问题的思路. 思路是:一些比较精美的花边图片我们是很难用代码控制,就目前本人水 ...

最新文章

  1. 网络模型--Squeeze-and-Excitation Networks
  2. 解决读写Excel的第三方类库as3xls无法读取中文和写入中文的问题
  3. Opengl-帧缓冲(一个新的缓冲对象,想一下深度和模板缓冲)
  4. 解决placeholder兼容性问题
  5. 成功解决pyinstaller生成exe缺少各种包的问题
  6. spring源码分析,聊聊PropertyPlaceholderConfigurer
  7. mysql 数据迁移_MySQL海量数据迁移
  8. 首次push本地代码到github上出现的问题及解决方案
  9. 架构设计常见的几类问题
  10. Springboot集成Activiti7
  11. 软件工程—实践者的研究方法
  12. 搞不动了,持安零信任真的安全
  13. BZOJ 2794 [Poi2012]Cloakroom(离线+背包)
  14. 网页前端上传文件,后端接受并处理文件
  15. openresty模板html页面,springboot+nginx+lua开发+html模板渲染
  16. 物联网智能家居系统解决方案
  17. 原生js提供的视频画中画api
  18. yolov1原文地址以及论文翻译
  19. 解决·web项目在浏览器页面上乱码
  20. 《MapReduce: Simplified Data Processing on Large Clusters》译文

热门文章

  1. 在moss页面出错时,显示详细的错误信息.
  2. Golang 随机获取本机可用端口
  3. KVM中四种网络模型(三)
  4. leetcode算法题--新21点★
  5. OPENSSL_Uplink(0098E000,07): no OPENSSL_Applink 错误分析
  6. 关于 通过http请求 无法访问Linux下的ftp服务的解决办法!
  7. [Erlang 0034] Erlang iolist
  8. 创建型模式 简单工厂模式
  9. 走近云计算:解密IaaS、PaaS和SaaS
  10. Exchange2010 初始化失败