OpenCV半小时掌握基本操作之边界填充
作者:我是小白呀 发布时间:2022-07-15 15:10:33
标签:OpenCV,边界填充,python
【OpenCV】⚠️高手勿入! 半小时学会基本操作⚠️边界填充
概述
OpenCV 是一个跨平台的计算机视觉库, 支持多语言, 功能强大. 今天小白就带大家一起携手走进 OpenCV 的世界.
边界填充
cv2.copyMakeBorder
可以帮助我们实现边界填充.
格式:
cv.copyMakeBorder(img,top, bottom, left, right ,borderType)
参数:
img: 需要填充的图像
top: 上边界填充像素
bottom: 下边界填充像素
left: 左边界填充像素
right: 右边界填充像素
borderType: 图像填充的方法
原图:
复制法
复制法: 复制最边缘像素.
例子:
# 读取图片
img = cv2.imread("picture2.jpg")
# 填充像素
top_size = 50
bottom_size = 50
left_size = 50
right_size = 50
# Replicate (复制法)
replicate = cv2.copyMakeBorder(img, top_size, bottom_size, left_size, right_size, borderType=cv2.BORDER_REPLICATE)
cv2.imshow("replicate", replicate)
cv2.waitKey(0)
cv2.destroyAllWindows()
输出结果:
反射法
反射法, 对图像边缘像素进行反射.
例子:
# 读取图片
img = cv2.imread("picture2.jpg")
# 填充像素
top_size = 50
bottom_size = 50
left_size = 50
right_size = 50
# Reflect (反射法)
reflect = cv2.copyMakeBorder(img, top_size, bottom_size, left_size, right_size, cv2.BORDER_REFLECT)
cv2.imshow("reflect", reflect)
cv2.waitKey(0)
cv2.destroyAllWindows()
输出结果:
反射法 101
反射法 101, 以边界为中心点, 对图像边缘像素进行反射.
代码:
# 填充像素
top_size = 50
bottom_size = 50
left_size = 50
right_size = 50
# Reflect101 (反射法101)
reflect101 = cv2.copyMakeBorder(img, top_size, bottom_size, left_size, right_size, cv2.BORDER_REFLECT_101)
cv2.imshow("reflect101", reflect101)
cv2.waitKey(0)
cv2.destroyAllWindows()
输出结果:
注: BORDER_REFLECT_101
和 BORDER_REFLECT
的区别是, BORDER_REFLECT_101
以边界为中心反射扩充.
外包法
外包法: 用相反位置对图片进行包裹.
代码:
# 读取图片
img = cv2.imread("picture2.jpg")
# 填充像素
top_size = 50
bottom_size = 50
left_size = 50
right_size = 50
# wrap (外包方法)
wrap = cv2.copyMakeBorder(img, top_size, bottom_size, left_size, right_size, cv2.BORDER_WRAP)
cv2.imshow("wrap", wrap)
cv2.waitKey(0)
cv2.destroyAllWindows()
输出结果:
常量法
常量法: 用常数值填充. 需要设置一个 value 值,代表填充的颜色.
代码:
# 读取图片
img = cv2.imread("picture2.jpg")
# 填充像素
top_size = 50
bottom_size = 50
left_size = 50
right_size = 50
# constant (常量法)
constant = cv2.copyMakeBorder(img, top_size, bottom_size, left_size, right_size, cv2.BORDER_CONSTANT, value=0)
cv2.imshow("constant", constant)
cv2.waitKey(0)
cv2.destroyAllWindows()
cv2.imwrite("constant.jpg", constant)
调试输出:
来源:https://blog.csdn.net/weixin_46274168/article/details/118849803


猜你喜欢
- 作者:Lachlan Hunt概要网络是不断的进化的. 新的和有创意的网站每天都在出现, 从各方面都在冲击着HTML的边界. HTML 4来
- 如何生成任意n阶的三对角矩阵数学作业要求实现共轭梯度法的算法。题目中的矩阵A是n=400/500/600的三对角矩阵。在网上查阅资料未果后,
- 在通过拼组sql语句来实现数据插入的应用中,我们很有可能会遇到需要插入大型数据的情况,例如,在oracle中需要插入字节数超过4000的字段
- 我就废话不多说了,大家还是直接看代码吧!def pro_mgr(): """ 获取当前
- 一、先描述一下问题吧如下创建表时候报错了CREATE TABLE `xxx` ( `id` bigint(20) NOT NUL
- 环境: 192.168.100.210  
- Go批处理语句用于同时执行多个语句使用、切换数据库use mastergo创建、删除数据库方法1、--判断是否存在该数据库,存在就删除if
- 前言本博客重点:folium的使用功能,图层控制、指北针、folium添加js和css、经纬网格线(栅格线)在上一篇使用folium制作地图
- 我突然很好奇,你说那些什么18几年的茅台真的是18几年就开始酿的吗?还有就是一个月要卖那么多,货是怎么供过来的?最后就是,一瓶那么贵,那一个
- 制作友好的模板Context你也许已经注意到范例中的出版商列表模板在变量 object_list 里保存所有的书籍。这个方法工作的很好,只是
- Pandas中Series和DataFrame的两种数据类型中都有nunique()和unique()方法。这两个方法作用很简单,都是求Se
- 1、一个或多个文件夹组成一个模块,而一个模块组合构成了一个包发布在公共目录里。2、包必须有__init__文件,否则就是一个文件夹。实例im
- 本文实例讲述了Python闭包思想与用法。分享给大家供大家参考,具体如下:浅谈 python 的闭包思想首先 python的闭包使用方法是:
- PyTorch 随机数生成占用 CPU 过高的问题今天在使用 pytorch 的过程中,发现 CPU 占用率过高。经过检查,发现是因为先在
- 本文实例为大家分享了javascript实现拼图游戏的具体代码,供大家参考,具体内容如下<div id="container
- 1、查看当前所有连接的详细资料:./mysqladmin -uadmin -p -h10.140.1.1 processlist2、只查看当
- What? 什么是面包屑面包屑是作为辅助和补充的导航方式(secondary navigation scheme),它能让用户知道在网站或应
- 前言select作为Go chan通信的重要监听工具,有着很广泛的使用场景。select的使用主要是搭配通信case使用,表面上看,只是简单
- 这篇文章主要介绍了Python遍历字典方式就实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友
- 基本介绍pandas是Python数据挖掘、数据分析中常用的库。而DataFrame生成excel中的sheet表,以及在excel中增加s