作业总结:磨皮滤镜(双边滤波bilateralFilter)代码实现[通俗易懂]

作业总结:磨皮滤镜(双边滤波bilateralFilter)代码实现[通俗易懂]双边滤波是一种非线性的滤波方法,是结合图像的空间邻近度和像素值相似度的一种折衷处理,同时考虑空间与信息和灰度相似性,达到保边去噪的目的,具有简单、非迭代、局部处理的特点。之所以能够达到保边去噪的滤波效果是因为滤波器由两个函数构成:一个函数是由几何空间距离决定滤波器系数,另一个是由像素差值决定滤波器系数.1Python:cv2.bilateralFilter(src,d,sigm…

大家好,又见面了,我是你们的朋友全栈君。

双边滤波是一种非线性的滤波方法,是结合图像的空间邻近度和像素值相似度的一种折衷处理,同时考虑空间与信息和灰度相似性,达到保边去噪的目的,具有简单、非迭代、局部处理的特点。之所以能够达到保边去噪的滤波效果是因为滤波器由两个函数构成:一个函数是由几何空间距离决定滤波器系数,另一个是由像素差值决定滤波器系数.

 

1 Python: cv2.bilateralFilter(src, d, sigmaColor, sigmaSpace[, dst[, borderType]]) → dst

 

参数解释:

  • src:输入图像

  • d:过滤时周围每个像素领域的直径

  • sigmaColor:在color space中过滤sigma。参数越大,临近像素将会在越远的地方mix。

  • sigmaSpace:在coordinate space中过滤sigma。参数越大,那些颜色足够相近的的颜色的影响越大。

 

import cv2
import numpy as np

def nothing(x):
    pass

cv2.namedWindow("image")
cv2.createTrackbar("d","image",0,255,nothing)
cv2.createTrackbar("sigmaColor","image",0,255,nothing)
cv2.ctrateTrackbar("sigmaSpace","image",0,255,nothing)
img = cv2.imread(r"E:\src.jpg",0)
while(1):
    d = cv2.getTrackbarPos("d","image")
    sigmaColor = cv2.getTrackbarPos("sigmaColor","image")
    sigmaSpace = cv2.getTrackbarPos("sigmaSpace","image")
    out_img = cv2.bilateralFilter(img,d,sigmaColor,sigmaSpace)
    cv2.imshow("out",out_img)
    k = cv2.waitKey(1) & 0xFF
    if k ==27:
        break
cv2.destroyAllWindows()

 

 

备注:

waitKey()函数的功能是不断刷新图像,频率时间为delay,单位为ms。

返回值为当前键盘按键值。

所以显示图像时,如果需要在imshow(“xxxx”,image)后吐舌头加上while(cvWaitKey(n)==key)为大于等于0的数即可,那么程序将会停在显示函数处,不运行其他代码;直到键盘值为key的响应之后。

delay>0时,延迟”delay”ms,在显示视频时这个函数是有用的,用于设置在显示完一帧图像后程序等待”delay”ms再显示下一帧视频;如果使用waitKey(0)则只会显示第一帧视频。

返回值:如果delay>0,那么超过指定时间则返回-1;如果delay=0,将没有返回值。 
  如果程序想响应某个按键,可利用if(waitKey(1)==Keyvalue); 
如果delay<0,等待时间无限长,返回值为按键值

经常程序里面出现if( waitKey(10) >= 0 ) 是说10ms中按任意键进入此if块。

 

cv2.waitKey(1) 与 0xFF(1111 1111)相与是因为cv2.waitKey(1) 的返回值不止8位,但是只有后8位实际有效,为避免产干扰,通过 ‘与’ 操作将其余位置0。

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/162994.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • pycharm django环境搭建_挣钱项目

    pycharm django环境搭建_挣钱项目2021/2/2pycharm打开的界面有更新。1.找到setting先找到自定义(customize)然后再点击Allsettings进入界面2.下载django的解释器先点击python的解释器(pythoninterpreter)然后选择一个需要配置django解释器的python项目,也可以新创一个。选择好python项目之后,可以从package栏查看下载了哪些python包。然后,点击pip,查找django就可以下载django的python包。THAT‘

  • aaa服务器显示认证失败,华为aaa认证案例-电信华为机顶盒50%通路故障或AAA认证失败怎么回…

    aaa服务器显示认证失败,华为aaa认证案例-电信华为机顶盒50%通路故障或AAA认证失败怎么回…华为交换机AAA配置与管理内容来自用户:wanhyl一、基础1、AAA是指:authentication(认证)、authorization(授权)、accounting(计费)的简称,是网络安全的一种管理机制;Authentication是本地认证/授权,authorization和accounting是由远处radius(远程拨号认证系统)服务或hwtacacs(华为终端访问控制系统)服务器完…

  • 什么是句柄

    什么是句柄一、百度百科解释:在文件I/O中,要从一个文件读取数据,应用程序首先要调用操作系统函数并传送文件名,并选一个到该文件的路径来打开文件。该函数取回一个顺序号,即文件句柄(filehandle),该

  • pytest指定用例_pytest执行多个py文件

    pytest指定用例_pytest执行多个py文件前言测试用例在设计的时候,我们一般要求不要有先后顺序,用例是可以打乱了执行的,这样才能达到测试的效果.有些同学在写用例的时候,用例写了先后顺序,有先后顺序后,后面还会有新的问题(如:上个用例返回

  • SCI 投稿Cover letter模板大全「建议收藏」

    SCI 投稿Cover letter模板大全「建议收藏」“`一、第一次投稿Coverletter:主要任务是介绍文章主要创新以及声明没有一稿多投DearEditors,Wewouldliketosubmittheenclosedmanuscriptentitled“PaperTi…

  • iocomp-Crack|New Version最新【2021】「建议收藏」

    iocomp-Crack|New Version最新【2021】「建议收藏」使用IocompComponents5.0以上能够助程序员开发出逼真的工控仪表和工控图表,让程序开发不再消耗时间和精力,有了这个控件不仅能节约开发时间,而且还降低了项目风险,最重要的是第三方控件写的程序更专业,工控图表图像更精细。他们用于生成具有专家级外观的仪器控件,并能紧密整合到Microsoft’s.NETFramework之中。您无需辛苦的在属性窗口中寻找该属性,其自定义的属性编辑器提供了简单快速的属性配置方法。Ultra控件包提供了70种专家级控件以及绘图控件包组件非常强大的

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号