当前位置: 首页 > wzjs >正文

网站ftp地址是什么dw做网站背景图片设置

网站ftp地址是什么,dw做网站背景图片设置,wordpress 留言信息在哪,优质服务的小企业网站建设文章目录 引言一、为什么需要边界填充?二、OpenCV中的边界填充类型1. 常数填充 (cv2.BORDER_CONSTANT)2. 反射填充 (cv2.BORDER_REFLECT)3. 反射101填充 (cv2.BORDER_REFLECT_101)4. 边缘复制填充 (cv2.BORDER_REPLICATE)5. 包裹填充 (cv2.BORDER_WRAP) 三、性能比较…

文章目录

  • 引言
  • 一、为什么需要边界填充?
  • 二、OpenCV中的边界填充类型
    • 1. 常数填充 (cv2.BORDER_CONSTANT)
    • 2. 反射填充 (cv2.BORDER_REFLECT)
    • 3. 反射101填充 (cv2.BORDER_REFLECT_101)
    • 4. 边缘复制填充 (cv2.BORDER_REPLICATE)
    • 5. 包裹填充 (cv2.BORDER_WRAP)
  • 三、性能比较与选择建议
  • 结论

引言

在图像处理中,边界填充(Border Padding)是一个基础但至关重要的技术。当我们进行卷积操作、图像滤波或几何变换时,经常需要处理图像边界外的像素值。OpenCV提供了多种边界填充方法,每种方法都有其特定的应用场景。本文将详细介绍OpenCV中的各种边界填充技术及其实现方式。

一、为什么需要边界填充?

在进行图像处理操作时,特别是卷积类操作(如滤波、边缘检测等),内核(kernel)需要访问目标像素周围邻域的像素值。当内核位于图像边缘时,部分邻域会超出图像边界。边界填充就是用来解决这个问题的,它决定了如何处理这些"不存在的"像素值。

二、OpenCV中的边界填充类型

OpenCV通过cv2.copyMakeBorder(src, top, bottom, left, right,borderType)函数提供多种边界填充方式,它有以下几个参数:

  • src:要扩充边界的原始图像。
  • top,bottom,left,right:相应方向上的边框宽度。
  • borderType:定义要添加边框的类型,它可以是以下的一种

以下是主要的填充类型:

1. 常数填充 (cv2.BORDER_CONSTANT)

import cv2
a = cv2.imread('zhaoyun.jpg')
top,bottom,left,right = 50,50,50,50
cv2.imshow('yuantu',a)‘’‘----------------常数填充--------------------------’‘’
contant = cv2.copyMakeBorder(a,top,bottom,left,right,borderType=cv2.BORDER_CONSTANT,value=(255,0,0))
  • value=(255,0,0):根据BGR格式得到一个蓝色边框
  • 图中我们给的图片是一张赵云的图片,下图所示是原图与常数填充的图片对比:

在这里插入图片描述 -

  • 特点:使用指定的常数值填充边界。
  • 应用场景:需要明显区分填充区域和实际图像时;图像分类任务中保持输入尺寸一致。

2. 反射填充 (cv2.BORDER_REFLECT)

import cv2
a = cv2.imread('zhaoyun.jpg')
top,bottom,left,right = 50,50,50,50
cv2.imshow('yuantu',a)‘’‘----------------反射填充--------------------------’‘’
reflect = cv2.copyMakeBorder(a,top,bottom,left,right,borderType=cv2.BORDER_REFLECT)
  • 下图是原图与经过反射填充后的图片对比,可以发现反射经过填充后的图片四周都进行了对称。

在这里插入图片描述

  • 特点:以图像边缘为轴进行镜像反射填充。
  • 应用场景:需要保持图像内容连续性的操作,如傅里叶变换。

3. 反射101填充 (cv2.BORDER_REFLECT_101)

import cv2
a = cv2.imread('zhaoyun.jpg')top,bottom,left,right = 50,50,50,50
cv2.imshow('yuantu',a)reflect101 = cv2.copyMakeBorder(a,top,bottom,left,right,borderType=cv2.BORDER_REFLECT101)
  • cv2.BORDER_REFLECT_101 :和上面类型一样,但是有一些细微的不同,类似于gfedcb | abcdefg | gfedcba(交换出删除了)
  • 效果如下:
    在这里插入图片描述
  • 特点:与BORDER_REFLECT类似,但不重复边缘像素。
  • 应用场景:需要更自然过渡的反射填充时。

4. 边缘复制填充 (cv2.BORDER_REPLICATE)

import cv2
a = cv2.imread('zhaoyun.jpg')top,bottom,left,right = 50,50,50,50
cv2.imshow('yuantu',a)replicate = cv2.copyMakeBorder(a,top,bottom,left,right,borderType=cv2.BORDER_REPLICATE)
  • cv2.BORDER_REPLICATE:使用最边界的像素值代替,类似于aaaaaa | abcdefgh | hhhhhhh
  • 效果如下:
    在这里插入图片描述
  • 特点:复制图像最边缘的像素值来填充。
  • 应用场景:当图像边缘内容相对平滑时;简单快速的填充需求。

5. 包裹填充 (cv2.BORDER_WRAP)

import cv2
a = cv2.imread('zhaoyun.jpg')top,bottom,left,right = 50,50,50,50
cv2.imshow('yuantu',a)wrap = cv2.copyMakeBorder(a,top,bottom,left,right,borderType=cv2.BORDER_WRAP)
  • cv2.BORDER_WRAP: 上下左右边依次替换,cdefgh | abcdefgh | abcdefg
  • 运行效果如下:

在这里插入图片描述

  • 特点:像平铺图像一样进行填充。
  • 应用场景:周期性图像处理;纹理分析。

三、性能比较与选择建议

  • 1.速度:BORDER_REPLICATE最快,BORDER_CONSTANT次之,反射类稍慢

  • 2.效果:
    * 对于视觉上自然的扩展:BORDER_REFLECT_101
    * 对于需要明显区分填充区域:BORDER_CONSTANT
    * 对于周期性内容:BORDER_WRAP

  • 3.默认选择:当不确定时,使用BORDER_DEFAULT(即BORDER_REFLECT_101)

结论

边界填充是图像处理中不可或缺的技术,OpenCV提供了多种填充方式以适应不同场景。理解各种填充类型的特点和适用场景,能够帮助我们在实际应用中做出更合适的选择,从而提高图像处理的质量和效果。

http://www.dtcms.com/wzjs/785304.html

相关文章:

  • django做网站和js做网站广告设计公司名称
  • 安徽网站推广优化做网站用的各种图标大全
  • 怎么建设vip电影网站有限责任公司和有限公司有啥区别
  • moodle网站建设门户网站建设技术要求
  • ie的常用网站建设机械网站
  • 泉州自主建站模板厂房装修多少钱一个平方米
  • 红色ppt模板免费下载网站上海徐家汇网站建设
  • 呼和浩特市网站电商网站建设课设
  • 电商网站建设在哪里找设计师足球比赛直播中国队
  • 如何对网站做渗透淘宝上新推荐
  • 网站添加ico营销培训计划
  • 做网站和做app有什么不同成都市建设局网站
  • 关键词排名点击软件网站微信小程序安装
  • 自己开通一个网站需要多少钱淘宝卖家 打电话 做网站
  • 汕头做网站优化的公司wordpress theme开发
  • 寿光市住房和建设局网站机构类网站有哪些
  • 校园官方网站建设创建站怎么上传网站怎么办
  • 金融门户网站建设品牌网站升级
  • 网站建设技术哪个好网站建设方案平台选择
  • 网站建设珠江摩尔教做甜品网站
  • 深圳龙华网站建设公司电子商务推广方式有哪些
  • 网站详细报价百度推广费用可以退吗
  • 网站备案需要什么材料厦门成品网站
  • 湖北网站建设报价泰安房产中介公司
  • 亳州市建设工程质量监督站网站青海公司网站建设哪家快
  • 建设一个视频网站己18深圳投资推广署
  • 订阅号怎么做微网站建站公司获客成本
  • 什么网站可以做锦鲤活动虚拟主机建设二个网站
  • 旅游网站怎样做宣传企业做网站公司哪家好
  • 漳浦建设局网站网站友情链接美化代码