当前位置: 首页 > 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/64020.html

相关文章:

  • 做组织架构图的网站seo查询是什么
  • 宝鸡市网站建设百度云登陆首页
  • 东莞网站建设免费服务器海外黄冈网站推广
  • 网上有做衣服的网站有哪些杭州网站推广优化
  • 网站备案方法网络广告联盟
  • 网站建设哪家好知道排名优化哪家好
  • 企业网站建设发展平台保定seo排名外包
  • 深圳宝安企业网站建设百度关键词推广网站
  • wordpress login 必应壁纸 插件页面关键词优化
  • 中山做网站多少钱综合型b2b电子商务平台网站
  • 郑州免费网站建设百度官方下载安装
  • app交互设计百度网站排名优化
  • 微信公众号微网站怎么做的网络推广平台
  • 山东滕州做网站技术电话网络营销方案设计毕业设计
  • 网站404 模板设计网站的软件
  • 手机网站开发c百度竞价关键词价格查询
  • 男科医院排名最好的医院网站seo怎么做
  • app网站建设多少钱青岛网站建设方案
  • 杭州模板网站建设系统行业网站
  • 静态化动态新闻网站开发金阊seo网站优化软件
  • 盐城做百度网站引流客户的最快方法是什么
  • 云速网站建设推广平台app
  • 佛山 做网站百度网盘app免费下载安装老版本
  • 北京装修公司怎么选广安网站seo
  • 北京龙鼎网站建设公司深圳网络营销网站设计
  • 做网站哪些公司好google免登录网页版
  • 租空间做网站seo专员
  • 新疆生产建设兵团政府网站设计网站排名
  • vs网站模态框怎么做网推什么意思
  • html 旅游网站3d建模培训班一般多少钱