5种边界填充

目录

    • 边界填充需要知道的两个东西
      • 什么算边界
      • 边界的范围是多少
      • 举例
    • 复制填充
    • 反射法
    • 反射101法
    • 外包装法
    • 数值填充法
    • 原图
    • 代码
    • 最终效果

边界填充需要知道的两个东西

什么算边界

顾名思义:就是图片的最外边
在这里插入图片描述

边界的范围是多少

根据你自己的需要而设置

举例

这里我选择 (50,50,50,50)
就是上下左右,这四个方向进行了填充,填充50个像素
在这里插入图片描述
如图,上面就是选出所需要填充的范围,这里选择50个像素
在这里插入图片描述
这就是一种填充,顾名思义,按离着边界最近的颜色块的颜色进行填充

复制填充

复制边界线的颜色填充
注意是边界线的颜色,也就是一个像素
在这里插入图片描述

反射法

顾名思义,这个方法就是对称轴复制法
在这里插入图片描述
注意这个反射法反射对称轴,也就是会复制对称轴

反射101法

在这里插入图片描述
注意:这个反射101法不会反射对称轴,也就是不会复制对称轴
和反射法的区别就在于,是否复制对称轴

外包装法

在这里插入图片描述
在这里插入图片描述
外包装,是按图像的离边界的顺序填充的,将边界外的像素视为图像的另一侧

数值填充法

在这里插入图片描述
在图片的四周填上指定的颜色

原图

在这里插入图片描述

代码

import cv2


def img_show(name, img):
    cv2.imshow(name, img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()


img = cv2.imread('enhanced_color_rgb.jpg')

print('img is shape:', img.shape)

# 定义上下左右各边的像素数
top_size, bottom_size, left_size, right_size = (50, 50, 50, 50)

# 创建不同类型的边界
# 使用复制边界类型,将边界的最外侧像素行或列进行复制
replicate = cv2.copyMakeBorder(img, top_size, bottom_size, left_size, right_size, borderType=cv2.BORDER_REPLICATE)
# 使用反射边界类型,将边界外的像素进行镜像反射(包括边界像素)
reflect = cv2.copyMakeBorder(img, top_size, bottom_size, left_size, right_size, borderType=cv2.BORDER_REFLECT)
# 使用反射101边界类型,将边界外的像素进行镜像反射(不包括最外侧的边界像素)
reflect_101 = cv2.copyMakeBorder(img, top_size, bottom_size, left_size, right_size, borderType=cv2.BORDER_REFLECT_101)
# 使用环绕边界类型,将边界外的像素视为图像的另一侧
wrap = cv2.copyMakeBorder(img, top_size, bottom_size, left_size, right_size, borderType=cv2.BORDER_WRAP)
# 使用常数边界类型,用指定的常数值填充边界外的像素
constant = cv2.copyMakeBorder(img, top_size, bottom_size, left_size, right_size, borderType=cv2.BORDER_CONSTANT,
                              value=0)

"""
    BORDER_REPLICATE    复制法  将边界的最外侧像素行或列进行复制                   a|abcdef|f
    BORDER_REFLECT      反射法  将边界外的像素进行镜像反射(包括边界像素)          bcdefa|abcdef|fedcba
    BORDER_REFLECT_101  反射101 将边界外的像素进行镜像反射(不包括最外侧的边界像素) bcdef|abcdef|edcba
    BORDER_WRAP         外包装  将边界外的像素视为图像的另一侧                     abcdef|abcdef|abcdef
    BORDER_CONSTANT     数值    用指定的常数值填充边界外的像素                     0|abcdef|0 
"""

import matplotlib.pyplot as plt

# 使用matplotlib显示原始图像和带有不同边界的图像
plt.figure(figsize=(10, 6))

labels = ['Original', 'Replicate', 'Reflect', 'Reflect 101', 'Wrap', 'Constant']
img_list = [img, replicate, reflect, reflect_101, wrap, constant]

for index in range(6):
    ax = plt.subplot(230 + index + 1)  # 创建子图
    plt.imshow(img_list[index])  # 显示图像
    plt.title(labels[index])  # 设置标题

    # # 设置 x 轴和 y 轴的刻度间隔为50
    # ax.set_xticks(range(0, img_list[index].shape[1], 50))
    # ax.set_yticks(range(0, img_list[index].shape[0], 50))

# 调整子图间距,使其显示得更清晰
plt.tight_layout()

# 显示图像
plt.show()

最终效果

在这里插入图片描述

👇 源码资料获取 · 技术与交流 👇

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/896080.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot中集成海康威视SDK实现布防报警数据上传/交通违章图片上传并在linux上部署(附示例代码资源)

场景 需对接海康威视交通产品中的交通违章检测功能,实现车辆闯红灯时获取抓拍数据(车牌号)并获取上传的抓拍图片。 根据其官方资料设备网络SDK使用手册中说明,此流程需要可以通过报警布防方式进行。 访问官方下载SDK文档等资料 海康威视-引领智能物联…

【C++】stack(STL)

stack的介绍 stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行元素的插入与提取操作。stack是作为容器适配器被实现的,容器适配器即是对特定类封装作为其底层的容器,并提供一组特定的成…

幂律分布笔记

一、幂律分布的数据拟合 数据分箱: 所谓分箱就是对原始数据进行分组,然后对每一组内的数据进行平滑处理。常见的分箱方式主要有等深分箱、等宽分箱、用户自定义等 对数分箱: 对原数据进行分箱,第i个箱的宽度为bi,b…

双十一购物节有哪些好物值得入手?2024双十一好物清单合集分享

一年一度的双十一购物狂欢节即将来临,各大平台纷纷开启预热活动,伴随着品牌的疯狂折扣和满减优惠,众多商品即将迎来超值的价格。现在正是大家“剁手”换新装备的大好时机。作为一名深耕智能产品多年的资深达人,今天这期我将从不同…

【python】OpenCV—Sort the Point Set from Top Left to Bottom Right

文章目录 1、功能描述2、代码实现3、效果展示4、更多例子5、参考 1、功能描述 给出一张图片,里面含有各种图形,取各种图形的中心点,从左到右从上到下排序 例如 2、代码实现 import cv2 import numpy as npdef process_img(img):img_gray c…

Xshell使用密钥远程登录Ubuntu 22.04报错:所选的用户密钥未在远程主机上注册。请再试一次

报错截图如下: 问题原因: Ubuntu 22.04 不支持 Xshell使用的私钥。 查看系统支持的私钥:sudo sshd -T | egrep "pubkey" ~$ sudo sshd -T | egrep "pubkey" pubkeyauthentication yes pubkeyacceptedalgorithms ssh-ed…

2024最新Selenium自动化测试面试题!

1、什么是自动化测试、自动化测试的优势是什么? 通过工具或脚本代替手工测试执行过程的测试都叫自动化测试。 自动化测试的优势: 1、减少回归测试成本 2、减少兼容性测试成本 3、提高测试反馈速度 4、提高测试覆盖率 5、让测试工程师做更有意义的…

LeetCode刷题日记之贪心算法(四)

目录 前言柠檬水找零根据身高重建队列用最少数量的箭引爆气球总结 前言 在前几篇文章中,我们已经覆盖了贪心算法的基本思路和多种题型。这次我将继续分享几道具有挑战性的贪心题目。希望这篇文章能为大家带来更多解题灵感和技巧✍✍✍ 柠檬水找零 LeetCode题目链接…

openai swarm多智能体框架使用案例;调用第三方deepseek大模型接口服务

参考: https://github.com/openai/swarm 安装: pip install git+ssh://git@github.com/openai/swarm.git pip install python-dotenv 代码: .env OPENAI_BASE_URL="https://api.deepseek.com/v1" OPENAI_API_KEY

MPU6050简介

MPU6050是一款集成了三轴加速度计和三轴陀螺仪的六轴传感器模块,由InvenSense公司开发。它广泛应用于运动检测、姿态感知、手势识别、无人机控制等领域。 MPU6050的主要功能与特点 6轴传感器: 三轴加速度计:用于测量物体在X、Y、Z三个轴向上…

【GT240X】如何在 Linux 中格式化磁盘

如何在 Linux 中格式化磁盘 文章目录 一、说明二、关于磁盘分区格式化过程三、如何通过命令行在 Linux 上格式化磁盘3.1 进入管理员(root)模式3.2 步骤1:查看磁盘情况,找到要分区的盘3.3 步骤2:用gdisk指令创建分区3.4…

ZK集群搭建:详细步骤与注意事项

在大数据和分布式系统日益重要的今天,ZooKeeper(简称ZK)作为一种分布式协调服务,扮演着举足轻重的角色。它主要用于管理大型分布式系统中的配置信息、命名、同步等。下面将详细介绍如何搭建一个ZooKeeper集群,帮助大家…

文档处理之10种PDF解析工具测评:兼看知识图谱遇见Chart图表的有趣实现思路

我们来围绕文档智能这个方向,一个是10种PDF解析工具6种不同文档类别的测试分析,这个有好落地,能够给出一些具有参考意义的工具。 另一个是关于图表跟知识图谱的结合,ChartKG,其中对于知识图谱的设计、图表要素的抽取以…

基于大模型的招聘智能体:从创意到MVP

正在考虑下一个 SaaS 创意?以下是我在短短几个小时内从创意到 MVP 的过程。 以下是我将在这篇文章中介绍的内容概述: 为什么这个想法让我产生共鸣我是如何开始构建它的我现在的处境以及我是否会真正推出 获得 SaaS 创意并构建它并不容易。就是这样。 …

SD-WAN可以搭建在任何网络上,通过中央控制器管理企业所有用户的终端路由器,实现集中配置和监控。

中国联通国际公司产品之 SD-WAN 在数字化转型的浪潮中,企业对于网络灵活性和高效性的需求日益增长。中国联通国际公司推出的SD-WAN(软件定义广域网)产品,正是基于这一背景应运而生,它以其独特的技术优势和全球化的网络…

何使用本地 LLMs 为可观察性 AI 助手提供本地部署支持

作者:来自 Elastic David Hope 了解如何为私有或本地部署配置本地 LLM。更多阅读:使用 Elastic 和 LM Studio 的 Herding Llama 3.1。 智能大语言模型已经存在了一段时间,一些客户做的第一件事就是在发生了许多严重的数据泄露事件后采取措施…

nltk_data下载安装

gitee上下载zip下载后解压缩(三次)packages文件夹改名为nltk_data 找应该放在哪: 放到上面列出的任一位置: 放到正确位置后:

搭建Golang gRPC环境:protoc、protoc-gen-go 和 protoc-gen-go-grpc 工具安装教程

参考文章: 安装protoc、protoc-gen-go、protoc-gen-go-grpc-CSDN博客 一、简单介绍 本文开发环境,均为 windows 环境,mac 环境其实也类似 ~ ① 编译proto文件,相关插件 简单介绍: protoc 是编译器,用于将…

数据分析和可视化python库orange简单使用方法

Orange 是一个基于 Python 的数据挖掘和机器学习库,它提供了一系列可视化工具和算法,用于数据分析、机器学习和数据可视化等任务。 一、主要特点 可视化界面:Orange 提供了直观的可视化界面,使得用户可以通过拖放操作构建数据分…

HCIP-HarmonyOS Application Developer 习题(十五)

(判断)1、在HarmonyOs中发布带权限公共事件,发布者首先要在config.json中申请所需的权限。 答案:正确 分析:发布携带权限的公共事件:构造CommonEventPublishInfo对象,设置订阅者的权限。 &#…