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

网站建站的具体流程兰州seo推广

网站建站的具体流程,兰州seo推广,工商网站如何做实名,咸宁网站建设哪家专业文章目录 《OpenCV计算机视觉》-对图片的各种操作(均值、方框、高斯、中值滤波处理)边界填充阈值处理图像平滑处理生成椒盐图片均值滤波处理方框滤波处理高斯滤波处理中值滤波处理 图像形态学腐蚀膨胀开运算闭运算顶帽和黑帽 《OpenCV计算机视觉》-对图片…

文章目录

  • 《OpenCV计算机视觉》-对图片的各种操作(均值、方框、高斯、中值滤波处理)
    • 边界填充
    • 阈值处理
    • 图像平滑处理
      • 生成椒盐图片
      • 均值滤波处理
      • 方框滤波处理
      • 高斯滤波处理
      • 中值滤波处理
    • 图像形态学
      • 腐蚀
      • 膨胀
      • 开运算
      • 闭运算
      • 顶帽和黑帽

《OpenCV计算机视觉》-对图片的各种操作(均值、方框、高斯、中值滤波处理)

边界填充

cv2.copyMakeBorder()是OpenCV库中的一个函数,用于给图像添加额外的边界(padding)。
copyMakeBorder(src: UMat, top: int, bottom: int, left: int, right: int, borderType: int, dst: UMat | None = ..., value: cv2.typing.Scalar = ...)
它有以下几个参数:
src:要扩充边界的原始图像。
top, bottom, left, right:相应方向上的边框宽度。
borderType:定义要添加边框的类型,它可以是以下的一种:
cv2.BORDER_CONSTANT:添加的边界框像素值为常数(需要额外再给定一个参数)。
cv2.BORDER_REFLECT:添加的边框像素将是边界元素的镜面反射,类似于gfedcba|abcdefgh|hgfedcba。 (交界处也复制了)
cv2.BORDER_REFLECT_101 或 cv2.BORDER_DEFAULT:和上面类似,但是有一些细微的不同,类似于gfedcb|abcdefgh|gfedcba  (交接处删除了)
cv2.BORDER_REPLICATE:使用最边界的像素值代替,类似于aaaaaa|abcdefgh|hhhhhhh
cv2.BORDER_WRAP:上下左右边依次替换,cdefgh|abcdefgh|abcdefg
ys = cv2.imread('demo1.png')
top,bottom,left,right = 50,50,50,50
constant = cv2.copyMakeBorder(ys,top,bottom,left,right,borderType=cv2.BORDER_CONSTANT,value=(100,20,220))
reflect = cv2.copyMakeBorder(ys,top,bottom,left,right,borderType=cv2.BORDER_REFLECT)
reflect101 = cv2.copyMakeBorder(ys,top,bottom,left,right,borderType=cv2.BORDER_REFLECT101)
replicate = cv2.copyMakeBorder(ys,top,bottom,left,right,borderType=cv2.BORDER_REPLICATE)
wrap = cv2.copyMakeBorder(ys,top,bottom,left,right,borderType=cv2.BORDER_WRAP)cv2.imshow('yuantu',ys)
cv2.waitKey(0)
cv2.imshow('CONSTANT',constant)
cv2.waitKey(0)
cv2.imshow('REFLECT',reflect)
cv2.waitKey(0)
cv2.imshow('REFLECT101',reflect101)
cv2.waitKey(0)
cv2.imshow('REPLICATE',replicate)
cv2.waitKey(0)
cv2.imshow('WRAP',wrap)
cv2.waitKey(0)

阈值处理

阈值处理是指剔除图像内像素值高于一定值或低于一定值的像素点。使用的方法为:
retval,dst=cv2.threshold(src,thresh,maxval,type)retval代表返回的阈值dst代表阈值分割结果图像,与原始图像具有相同的大小和类型src代表要进行阈值分割的图像,可以是多通道的,8位或32位浮点型数值thresh代表要设定的阈值maxval代表type参数位THRESH_BINARY或者THRESH_BINARY_INV类型时,需要设定的最大值type代表阈值分割的类型,具体内容如下表所示:选项                  像素值>thresh      其他情况
cv2.THRESH_BINARY         maxval              0
cv2.THRESH_BINARY_INV         0               maxval
cv2.THRESH_TRUNC          thresh              当前灰度值
cv2.THRESH_TOZERO         当前灰度值           0
cv2.THRESH_TOZERO_INV         0               当前灰度值
image = cv2.imread('demo1.png',0)
ret,binary=cv2.threshold(image,210,255,cv2.THRESH_BINARY)
ret1,binaryinv=cv2.threshold(image,210,255,cv2.THRESH_BINARY_INV)
ret2,trunc=cv2.threshold(image,210,255,cv2.THRESH_TRUNC)
ret3,tozero=cv2.threshold(image,210,255,cv2.THRESH_TOZERO)
ret4,tozeroinv=cv2.threshold(image,210,255,cv2.THRESH_TOZERO_INV)cv2.imshow('gray',image)
cv2.waitKey(0)
cv2.imshow('binary',binary)
cv2.waitKey(0)
cv2.imshow('binaryinv',binaryinv)
cv2.waitKey(0)
cv2.imshow('trunc',trunc)
cv2.waitKey(0)
cv2.imshow('tozero',tozero)
cv2.waitKey(0)
cv2.imshow('tozeroinv',tozeroinv)
cv2.waitKey(0)
cv2.destroyAllWindows()

图像平滑处理

图像平滑(smoothing)也称为“模糊处理”(bluring), 是一项简单且使用频率很高的图像处理方法。
可以用来压制、弱化或消除图像中的细节、突变、边缘和噪声。但最常见的是用来减少图像上的噪声或者失真。
降低图像分辨率时,平滑处理是很重要的。
下面是常用的一些滤波器均值滤波(邻域平均滤波)–> blur函数方框滤波–> boxFilter函数高斯滤波–>GaussianBlur函数中值滤波–>medianBlur函数dst=cv2.blur(src,ksize,anchor,borderType)dst是返回值src是需要处理的图像kszie是滤波核(卷积核)的大小anchor是锚点,默认值是(-1,-1)一般无需更改borderType是边界样式,一般无需更改
一般情况下,使用dst=cv2.blur(src,ksize)即可

生成椒盐图片

def add_peppersalt_noise(image,n=10000):result = image.copy()h, w=image.shape[:2] # 获取图片的高和宽for i in range(n):  # 生成n个椒盐噪声x = np.random.randint(1,h)y = np.random.randint(1,w)if np.random.randint(0,2) == 0:result[x, y] = 0else:result[x,y] =255return resultimage = cv2.imread('demo1.png')
cv2.imshow('sro',image)
cv2.waitKey(0)
noise = add_peppersalt_noise(image)
cv2.imshow('noise',noise)
cv2.waitKey(0)

均值滤波处理

blur_1 = cv2.blur(noise,(3,3))
cv2.imshow('blur_1',blur_1)
cv2.waitKey(0)blur_2 = cv2.blur(noise,(5,5))
cv2.imshow('blur_2',blur_2)
cv2.waitKey(0)

方框滤波处理

dst=cv2.boxFilter(src,ddepth,ksize,anchor,normalize,borderType)式中:● dst是返回值,表示进行方框滤波后得到的处理结果。● src 是需要处理的图像,即原始图像。● ddepth是处理结果图像的图像深度,一般使用-1表示与原始图像使用相同的图像深度。(可以理解为数据类型)● ksize 是滤波核的大小。滤波核大小是指在滤波处理过程中所选择的邻域图像的高 度和宽度。● anchor 是锚点,(指对应哪个区域)● normalize 表示在滤波时是否进行归一化。1.当值为True时,归一化,用邻域像素值的和除以面积。  此时方框滤波与 均值滤波 效果相同。2.当值为False时,不归一化,直接使用邻域像素值的和。和>255时使用255
# 方框滤波
boxFilter_1 = cv2.boxFilter(noise,-1,(3,3),normalize=True)
cv2.imshow('boxFilter_1',boxFilter_1)
cv2.waitKey(0)
boxFilter_2 = cv2.boxFilter(noise,-1,(3,3),normalize=False)
cv2.imshow('boxFilter_2',boxFilter_2)
cv2.waitKey(0)

高斯滤波处理

cv2.GaussianBlur(src, ksize[, sigmaX[, sigmaY[, dst]]])高斯滤波
参数说明:
src:输入图像,通常是一个NumPy数组。
ksize:滤波器的大小,它是一个元组,表示在水平和垂直方向上的像素数量。例如,(5, 5)表示一个5x5的滤波器。
sigmaX和sigmaY:分别表示在X轴和Y轴方向上的标准差。这些值与滤波器大小相同。默认情况下,它们都等于0,这意味着没有高斯模糊。
dst:输出图像,通常是一个NumPy数组。如果为None,则会创建一个新的数组来存储结果。
GaussianB = cv2.GaussianBlur(noise,(3,3),1)
cv2.imshow('GaussianBlur',GaussianB)
cv2.waitKey(0)

中值滤波处理

cv2.medianBlur(src, ksize[, dst])中值滤波参数说明:
src:输入图像。
ksize:滤波器的大小,它是一个整数,表示在水平和垂直方向上的像素数量。例如,5表示一个5x5的滤波器。
dst:输出图像,通常是一个NumPy数组。如果为None,则会创建一个新的数组来存储结果。
medianB = cv2.medianBlur(noise,3)
cv2.imshow('medianBlur',medianB)
cv2.waitKey(0)
cv2.destroyAllWindows()

图像形态学

腐蚀

1、图像腐蚀, 函数为:
cv2.erode(src, kernel, dst,anchor,iterations,borderType,borderValue)
src: 输入的图像
kernel: 用于腐蚀的结构元件如果element = Mat(),则使用3 × 3的矩形结构单元。
dst: 它是与src相同大小和类型的输出图像。
iterations:腐蚀操作的迭代次数,默认为1。次数越多, 腐蚀操作执行的次数越多,腐蚀效果越明显
sun = cv2.imread('sun.png')
cv2.imshow('sun',sun)
cv2.waitKey(0)
kernel = np.ones((3,3),np.uint8)
erosion_1 = cv2.erode(sun,kernel,iterations=2)
cv2.imshow('erosion_1',erosion_1)
cv2.waitKey(0)

膨胀

2、图像膨胀,   函数为:
cv2.dilate(img, kernel, iteration)
参数含义:
img – 目标图片
kernel – 进行操作的内核,默认为3×3的矩阵
iterations – 膨胀次数,默认为1
wenzi = cv2.imread('zimu.png')
cv2.imshow('src1',wenzi)
cv2.waitKey(0)
kernel = np.ones((2,2),np.uint8)
wenzi_new = cv2.dilate(wenzi,kernel,iterations=3)
cv2.imshow('wenzi_new',wenzi_new)
cv2.waitKey(0)

开运算

开运算:先腐蚀后膨胀。
zhiwen = cv2.imread('zhiwen1.png')
cv2.imshow('scr2',zhiwen)
cv2.waitKey(0)
kernel = np.ones((2,2),np.uint8)
zhiwen_new = cv2.morphologyEx(zhiwen,cv2.MORPH_OPEN,kernel)
cv2.imshow('zhiwen_new',zhiwen_new)
cv2.waitKey(0)

闭运算

闭运算:先膨胀后腐蚀
zhiwen = cv2.imread('zhiwen2.png')
cv2.imshow('scr3',zhiwen)
cv2.waitKey(0)
kernel = np.ones((4,4),np.uint8)
zhiwen_new = cv2.morphologyEx(zhiwen,cv2.MORPH_CLOSE,kernel)
cv2.imshow('zhiwen_new',zhiwen_new)
cv2.waitKey(0)cv2.destroyAllWindows()

顶帽和黑帽

顶帽 = 原始图像 - 开运算结果(先腐蚀后膨胀)
黑帽 = 闭运算(先膨胀后腐蚀) - 原始图像
sun = cv2.imread('sun.png')
cv2.imshow('sun_yuantu',sun)
cv2.waitKey(0)
kernel = np.ones((2,2),np.uint8)  #设置kenenel大小
#开运算
open_sun=cv2.morphologyEx(sun,cv2.MORPH_OPEN,kernel)
cv2.imshow('open_sun',open_sun)
cv2.waitKey(0)
#顶帽
tophat = cv2.morphologyEx(sun,cv2.MORPH_TOPHAT,kernel)
cv2.imshow('TOPHAT',tophat)
cv2.waitKey(0)
#闭运算
close_sun=cv2.morphologyEx(sun,cv2.MORPH_CLOSE,kernel)
cv2.imshow('close_sun',close_sun)
cv2.waitKey(0)
#黑帽
blackhat = cv2.morphologyEx(sun,cv2.MORPH_BLACKHAT,kernel)
cv2.imshow('BLACKHAT',blackhat)
cv2.waitKey(0)
http://www.mmbaike.com/news/54017.html

相关文章:

  • 免费建设个人手机网站学生个人网页制作教程
  • 为什么菜市场不可以做网站青岛百度关键词优化
  • 做app的网站有哪些功能吗杭州seo的优化
  • 广告发布需要许可证吗宝鸡百度seo
  • 网站seo标题是什么意思黑帽seo技术
  • 网站建设公司怎么赚钱网络营销策划总结
  • 合肥做网站mdyun新闻投稿平台有哪些
  • 世界知名网站新的营销方式有哪些
  • 网站 建设 汇报西安网站设计开发
  • 手机网站建设网拓客渠道有哪些
  • 闵行网站制作公司太原seo报价
  • app软件下载免费优就业seo
  • 做网站分什么软件免费可用的网站源码
  • 太原手机模板建站现在搜什么关键词能搜到网站
  • 汕头网站建设设计天津优化公司
  • 福建做网站公司南昌seo
  • 葫芦岛网站公司上海网络推广外包
  • 怎么看一个网站做的好不好今日要闻新闻
  • 云服务器ecs部署网站百度账号
  • 品牌建设传播网站公司百度拍照搜题
  • 如何做网站美工企业软文
  • 临沂自助建站软件外贸网站建设
  • 网站设计为什么要去澳门不受限制的浏览器
  • 个人网站平台搭建站长平台官网
  • 个人网站需要建站群吗门户网站推广方案
  • hexo wordpress 主题seo外链软件
  • 辽宁建设工程信息网录入的人员去世的会自动删除吗快速优化关键词排名
  • 做网站 侵权北京seo关键词排名
  • 如何查看网站日志网店运营培训哪里好
  • 网站建设 400电话 广告营销策划公司简介