Python中的OpenCV图像阈值处理和平滑处理详解

 更新时间:2023年08月07日 10:14:14   作者:小白地瓜  
这篇文章主要介绍了Python中的OpenCV图像阈值处理和平滑处理详解,OpenCV是一个跨平台的计算机视觉库,可用于开发实时的图像处理、计算机视觉以及模式识别程序,需要的朋友可以参考下

一、图像的阈值处理

ret, dst = cv2.threshold(src=,thresh=,maxval=,type=)

  • dst:输出图
  • src:输入图,只能是单通道图像,通常来说为灰度图
  • thresh:阈值
  • maxval:当像素值超过了阈值(或者小于阈值,根据type来决定),所赋予的值
  • type:二值化操作的类型和,包含以下五种
    • cv2.THRESH_BINARY 超过阈值部分取maxval(最大值),否则0
    • cv2.THRESH_BINARY_INV 小于阈值部分取maxval(最大值) 否则0
    • cv2.THRESH_TRUNC 大于阈值部分设为阈值,否则不变
    • cv2.THRESH_TOZERO 大于阈值部分不改变,否则设为0
    • cv2.THRESH_TOZERO_INV 小于阈值部分不改变吗,否则设为0
import cv2
img_h = cv2.imread(r"C:\Users\admin\Desktop\yy.jpg", cv2.IMREAD_GRAYSCALE)
# 超过阈值部分取maxval(最大值),否则0
ret1,img1 = cv2.threshold(img_h,127,255,cv2.THRESH_BINARY)
# 小于阈值部分取maxval(最大值)  否则0
ret2,img2 = cv2.threshold(img_h,127,255,cv2.THRESH_BINARY_INV)
# 大于阈值部分设为阈值,否则不变
ret3,img3 = cv2.threshold(img_h,127,255,cv2.THRESH_TRUNC)
# 大于阈值部分不改变,否则设为0
ret4,img4 = cv2.threshold(img_h,127,255,cv2.THRESH_TOZERO)
# 小于阈值部分不改变吗,否则设为0
ret5,img5 = cv2.threshold(img_h,127,255,cv2.THRESH_TOZERO_INV)
titles = ["ORIGINAL", "BINARY", "BINARY_INV", "TRUNC", "TOZERO", "TOZERO_INV"]
imgs = [img_h,img1,img2,img3,img4,img5]
for i in range(6):
    plt.subplot(2,3,i+1),plt.imshow(imgs[i],"gray")
    plt.title(titles[i])
    plt.xticks([]), plt.yticks([])
plt.show()

效果如下

在这里插入图片描述

二、图像的平滑处理

img = cv2.imread(r"C:\Users\admin\Desktop\yy2.jpg", cv2.IMREAD_GRAYSCALE)
# 均值滤波
# 简单的平均卷积操作
# (3,3)为每次处理矩阵的大小
# 比如3*3的矩阵9个数,9个数相加除以9来代替中间点的像素值
blur = cv2.blur(img, (3, 3))
# 方框滤波
# normalize=True时,基本和均值一样,可以选择归一化
# -1 基本为常量
box = cv2.boxFilter(img,-1,(3,3),normalize=True)
# 方框滤波
# normalize=False,容易越界,因为超过255,则就255
# 比如3*3的矩阵9个数,9个数相加代替中间点的像素值,超过255则为255
box = cv2.boxFilter(img,-1,(3,3),normalize=False)
# 高斯滤波
# 卷积核是满足高斯分布,相当于更重视中间的像素值
aussian = cv2.GaussianBlur(img, (5,5), 1)
# 中值滤波
# 相当于用中值代替
# 比如3*3的矩阵9个数,取中值来代替中间点的像素值
median = cv2.medianBlur(img, 5)

到此这篇关于Python中的OpenCV图像阈值处理和平滑处理详解的文章就介绍到这了,更多相关OpenCV图像阈值处理和平滑处理内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • scikit-learn线性回归,多元回归,多项式回归的实现

    scikit-learn线性回归,多元回归,多项式回归的实现

    这篇文章主要介绍了scikit-learn线性回归,多元回归,多项式回归的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • 搞笑的程序猿:看看你是哪种Python程序员

    搞笑的程序猿:看看你是哪种Python程序员

    这篇文章主要介绍了搞笑的程序猿:看看你是哪种Python程序员,不久前,在互联网上出现了一篇有趣的文章,讲的是对于同一个问题,不同层次的Python程序员编出的Python代码,显示出了不同的风格,代码都很简单,有趣,需要的朋友可以参考下
    2015-06-06
  • ubuntu系统如何从python3.7升级到python3.8

    ubuntu系统如何从python3.7升级到python3.8

    这篇文章主要给大家介绍了关于ubuntu系统如何从python3.7升级到python3.8的相关资料,Python是一种广泛使用的编程语言,而Ubuntu是一个流行的开源操作系统,通过升级Python您可以获得新功能、性能改进和安全修复,需要的朋友可以参考下
    2023-11-11
  • Python 实现某个功能每隔一段时间被执行一次的功能方法

    Python 实现某个功能每隔一段时间被执行一次的功能方法

    今天小编就为大家分享一篇Python 实现某个功能每隔一段时间被执行一次的功能方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10
  • Python+PyQt5开发智能密码字典生成器(附完整源码)

    Python+PyQt5开发智能密码字典生成器(附完整源码)

    这篇文章主要为大家详细介绍了如何基于Python+PyQt5开发智能密码字典生成器,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2026-03-03
  • python 使用 requests 模块发送http请求 的方法

    python 使用 requests 模块发送http请求 的方法

    本文分步骤给大家介绍了python 使用 requests 模块发送http请求 的方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-12-12
  • 如何提取Playwright录制文件中的元素定位信息

    如何提取Playwright录制文件中的元素定位信息

    最近在学习Playwright自动化测试,本文主要介绍了如何提取Playwright录制文件中的元素定位信息,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • python爬虫今日热榜数据到txt文件的源码

    python爬虫今日热榜数据到txt文件的源码

    这篇文章主要介绍了python爬虫今日热榜数据到txt文件的源码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-02-02
  • 对python字典过滤条件的实例详解

    对python字典过滤条件的实例详解

    今天小编就为大家分享一篇对python字典过滤条件的实例详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • Django实现auth模块下的登录注册与注销功能

    Django实现auth模块下的登录注册与注销功能

    这篇文章主要介绍了Django实现auth模块下的登录注册与注销功能,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-10-10

最新评论