目标:

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

函数简介:

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

参数:

src: 原图像

dst: 目标图像

top, bottom, left, right: 每一个边界方向上像素的宽度.在这里使用图像原始大小的 5% .

borderType:边框的类型 。当前例子中位纯色或者边界的复制.

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 image

if( src.empty() )

{

printf(" No data entered, please enter the path to an image file \n");

return -1;

}

//![load]

/// Brief how-to for this program

printf( "\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 filter

top = (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;

}

效果

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

给图片加边框源代码c语言,OpenCV实现给图片添加边框功能相关推荐

  1. html给图片加描边,ps如何给图片加边框?Photoshop CS6巧用描边给照片添加边框教程...

    怎么用ps给照片加边框?生活中,为了照片更加美观,经常会给图片加上边框,那么,在Photoshop中怎么给图片加边框呢?下面给大家介绍一下Photoshop CS6巧用描边给照片添加边框的具体操作方法 ...

  2. OpenCV在图像上添加边框borders

    OpenCV在图像上添加边框borders 在图像上添加边框borders 目标 理论 代码 解释 声明变量 载入图片 创建一个窗口 初始化参数 环形loop 颜色随机 在图像周围形成边框 结果 在图 ...

  3. JQuery图片加载显示loading和加载失败默认图片

    在很多时候我们需要用到图片加载功能,在网上搜资料后就想为了以后使用方便重新整理了下,结果如图: 最后一张是加载失败显示的图片,没找到合适的图片,先用他顶替. 页面引用 <div class=&q ...

  4. 从零开始实现图片加载特效之黑白照片、倒影图片、图片蒙版

    尊重他人的劳动成果,转载请标明出处:http://blog.csdn.net/gengqiquan/article/details/53168797, 本文出自:[gengqiquan的博客] 之前有 ...

  5. ios 图片加载内存尺寸_iOS内存分析上-图片加载内存分析

    简介 对于大多数App来说,内存占用主要就是图片.本文将从实用的角度分析,iOS图片的内存占用.测量.优化等. iOS内存-有什么影响 在移动操作系统设备中,是不能像PC一样进行内存swap的,而随着 ...

  6. html给背景图片加遮罩,科技常识:css3给背景图片加颜色遮罩的方法

    今天小编跟大家讲解下有关css3给背景图片加颜色遮罩的方法 ,相信小伙伴们对这个话题应该有所关注吧,小编也收集到了有关css3给背景图片加颜色遮罩的方法 的相关资料,希望小伙伴们看了有所帮助. 前段时 ...

  7. alert中添加表格_Excel设置表格边框的几种方法,还有自动添加边框哟

    我们在日常工作中,使用Excel制作表格的,最后都要加上边框,打印时才会达到表格的要求,今天小编教大家快速给表格添加边框的方法,有一种是自动添加哟! 方法一: 利用功能选项卡按钮,这应该是大家经常用的 ...

  8. c语言图片加水印,[求助]C语言 bmp文件加上水印

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 给一张图片加水印后存起来然后显示出来 有部分源码 求高手帮忙完成~! #include #include /* structure defiens bit ...

  9. element ui 图片加载失败_解决Element UI - el-image 图片初始化加载失败问题

    最近使用elementUI的el-image发现经常会出现加载src失败的情况,问题估计就是e-image的src路径一旦初始化加载失败的话就没有异步刷新,(这个地方需要注意过这个问题的大佬解读下源码 ...

最新文章

  1. [转]Android UI 自动化测试
  2. 程序猿修仙之路--数据结构之你是否真的懂数组? c#socket TCP同步网络通信 用lambda表达式树替代反射 ASP.NET MVC如何做一个简单的非法登录拦截...
  3. Element el-upload上传组件详解
  4. 2021考研数一李正元400题、张宇4套卷题目整理
  5. 在AndroidStudio中数据存储第三方数据管理Bmob的使用
  6. 微软放弃IE浏览器 应尽快完成国产化替代
  7. ubuntu 解决“无法获得锁 /var/lib/dpkg/lock -open (11:资源暂时不可用)”的方法...
  8. Git笔记(31) 重置揭密
  9. 超简代码版设计模式系列六
  10. fastmock模拟常见数据结构
  11. 用记事本写表白html,抖音电脑弹窗表白代码怎么弄_记事本vbs告白代码写法介绍_抖音表白套路方法分享...
  12. 自己制作一个计时器、倒计时器
  13. 个人总结 onSaveInstanceState方法会在什么时候被执行
  14. linux下操作3G模块
  15. CSGO地图人物模型配置
  16. 可爱的小老鼠计算机教案,大班语言儿歌教案《小老鼠玩电脑》
  17. 高企审计报告包括哪些内容?
  18. codec基础知识的学习
  19. 实验七 计数器及其应用
  20. 用计算机探索规律的总结,《用计算器探索规律》(通用6篇)

热门文章

  1. Codeforces Round #601 (Div. 2)B. Fridge Lockers
  2. 4、基本命令-系统管理
  3. P1719 最大加权矩形(二维dp)
  4. Google Earth Engine(GEE)——reduceRegions中参数详解
  5. 写给新手的深度学习综述,收藏了
  6. laravel接合monolog实现日志记录到Elasticsearch实践
  7. Kali linux无线网络渗透详解笔记
  8. C++学习(三)LHS RHS
  9. 电子表整点报时怎么取消_歪果仁怎么说“我被放鸽子了”?这可跟鸽子没关系哦...
  10. Mac的自带软件grapher