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

如何做百度网站推广搜索风云排行榜

如何做百度网站推广,搜索风云排行榜,扬州广陵城乡建设局网站,仓库管理软件哪个好文章目录 引言一、为什么需要边界填充?二、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/362562.html

相关文章:

  • 展示型网站建设多少钱郑州网站seo
  • 长沙专业网站建设在线发外链工具
  • 网站改版 更换域名整站优化服务
  • 商城网站建设运营协议书四川seo整站优化费用
  • 网站如何不被百度搜到网站优化排名软件网
  • 沧州网站建没西安seo整站优化
  • 网站抢购外挂软件怎么做产品推广怎么做
  • 北京怎么样做网站网络营销策略实施的步骤
  • 如何做网站卖家具百度文库首页官网
  • 域名解析官网山东seo费用多少
  • wordpress做网站好吗百度上的广告多少钱一个月
  • 上海网站定制费用磁力链搜索引擎入口
  • 鹿泉手机网站建设个人如何建立免费网站
  • 网站建设找哪家宁波seo关键词排名优化
  • 装饰网站开发背景公众号排名优化
  • app导航网站建设多少钱网站seo关键词优化
  • 做农产品交易网站有哪些品牌宣传的推广
  • wordpress管理员aso优化前景
  • 深圳企业网站建设企业铁岭网站seo
  • 响应式的网站做优化好吗网站推广上首页
  • 玉树州网站建设公司谷歌广告代理公司
  • 网站建设公司怎么做好seo网站培训班
  • 企业网站建设的费用seo规范培训
  • 佛山知名营销网站开发网页设计工作室长沙
  • 南宁市两学一做网站怎么做推广网络
  • 100种增加网站流量的方法推广形式有哪几种
  • 青岛茶叶网站建设做seo用哪种建站程序最好
  • 成都家具网站建设广西关键词优化公司
  • 泰安电视台新闻综合频道seo网站优化培训找哪些
  • java做网站比php难免费个人网站建设