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图像阈值处理和平滑处理内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Python基于similarities实现文本语义相似度计算和文本匹配搜索
similarities 实现了多种相似度计算、匹配搜索算法,支持文本、图像,python3开发,下面我们就来看看如何使用similarities实现文本语义相似度计算和文本匹配搜索吧2024-03-03Python使用pandas和xlsxwriter读写xlsx文件的方法示例
今天小编就为大家分享一篇关于Python使用pandas和xlsxwriter读写xlsx文件的方法示例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧2019-04-04Python多线程操作之互斥锁、递归锁、信号量、事件实例详解
这篇文章主要介绍了Python多线程操作之互斥锁、递归锁、信号量、事件,结合实例形式详细分析了Python多线程操作互斥锁、递归锁、信号量、事件相关概念、原理、用法与操作注意事项,需要的朋友可以参考下2020-03-03使用 Python 和 Selenium 解决 Cloudflare&
Cloudflare 验证码是一种用于区分人类用户和自动化机器人的功能,它是 Cloudflare 安全服务的重要组成部分,旨在防御网站免受自动化攻击和滥用,这篇文章主要介绍了使用 Python 和 Selenium 解决 Cloudflare 验证码,需要的朋友可以参考下2024-06-06
最新评论