图像阈值

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

- src: 输入图,只能输入单通道图像,通常来说为灰度图
- dst: 输出图
- thresh: 阈值 0-255 一般是127
- maxval: 当像素值超过了阈值(或者小于阈值,根据type来决定),所赋予的值  最大值255
- type:二值化操作的类型,包含以下5种类型: cv2.THRESH_BINARY; cv2.THRESH_BINARY_INV; cv2.THRESH_TRUNC; cv2.THRESH_TOZERO;cv2.THRESH_TOZERO_INV

- cv2.THRESH_BINARY           超过阈值部分取maxval(最大值),否则取0
- cv2.THRESH_BINARY_INV    THRESH_BINARY的反转
- cv2.THRESH_TRUNC            大于阈值部分设为阈值,否则不变
- cv2.THRESH_TOZERO          大于阈值部分不改变,否则设为0
- cv2.THRESH_TOZERO_INV  THRESH_TOZERO的反转

  1. import cv2
  2. import numpy as np
  3. import matplotlib.pyplot as plt#Matplotlib是RGB
  4.  
  5. img=cv2.imread('d:/image0.jpg')
  6. img_gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
  7.  
  8. ret, thresh1 = cv2.threshold(img_gray, 127, 255, cv2.THRESH_BINARY)
  9. ret, thresh2 = cv2.threshold(img_gray, 127, 255, cv2.THRESH_BINARY_INV)
  10. ret, thresh3 = cv2.threshold(img_gray, 127, 255, cv2.THRESH_TRUNC)
  11. ret, thresh4 = cv2.threshold(img_gray, 127, 255, cv2.THRESH_TOZERO)
  12. ret, thresh5 = cv2.threshold(img_gray, 127, 255, cv2.THRESH_TOZERO_INV)
  13.  
  14. titles = ['Original Image', 'BINARY', 'BINARY_INV', 'TRUNC', 'TOZERO', 'TOZERO_INV']
  15. images = [img, thresh1, thresh2, thresh3, thresh4, thresh5]
  16.  
  17. for i in range(6):
  18. plt.subplot(2, 3, i + 1), plt.imshow(images[i], 'gray')
  19. plt.title(titles[i])
  20. plt.xticks([]), plt.yticks([])
  21. plt.show()

滤波处理

  1. import cv2
  2. import numpy as np
  3. import matplotlib.pyplot as plt#Matplotlib是RGB
  4.  
  5. img=cv2.imread('d:/image0.jpg')
  6. #cv2.imshow("image",img)
  7. #均值滤波
  8. bluer=cv2.blur(img,(,))
  9.  
  10. #方框滤波
  11. #基本和均值一样,可以选择归一化
  12. box=cv2.boxFilter(img,-,(,),normalize=True)
  13.  
  14. #方框滤波
  15. #基本和均值一样,可以选择归一化,容易越界
  16. box2=cv2.boxFilter(img,-,(,),normalize=False)
  1. res=np.hstack((bluer,box,box2))
    cv2.imshow("da",res)
  1. cv2.waitKey()
    cv2.destroyAllWindows()

  1. #高斯滤波
  2. #高斯滤波得卷积核里地数值满足高斯分布,相当于中间地分布
  3. import cv2
  4. import numpy as np
  5. img=cv2.imread("d:/image0.jpg")
  6. aussian=cv2.GaussianBlur(img,(3,3),1)
  1. #均值滤波
  1. bluer=cv2.blur(img,(5,5))
    #中值滤波
  2. median=cv2.medianBlur(img,5)
  3.  
  4. res=np.hstack((aussian,bluer,median))
  5. cv2.imshow("aussian vs averge",res)
  6. cv2.waitKey(0)
  7. cv2.destroyAllWindows()

opencv-python 图像基础处理(二)的更多相关文章

  1. opencv python:图像二值化

    import cv2 as cv import numpy as np import matplotlib.pyplot as plt # 二值图像就是将灰度图转化成黑白图,没有灰,在一个值之前为黑, ...

  2. opencv+python视频实时质心显示

    利用opencv+python实现以下功能: 1)获取实时视频,分解帧频: 2)将视频做二值化处理: 3) 将视频做滤波处理(去除噪点,获取准确轮廓个数): 4)识别图像轮廓: 5)计算质心: 6)描 ...

  3. Ubuntu系统---安装Caffe (+OpenCV+Python+CPU-only)

    安装配置Ubuntu14.04+Caffe (+OpenCV+Python+CPU-only) 记录 [作者:Wu Ping.时间:20180428.] 本人已经安装很多次的Caffe了:从开始的初探 ...

  4. python排序之二冒泡排序法

    python排序之二冒泡排序法 如果你理解之前的插入排序法那冒泡排序法就很容易理解,冒泡排序是两个两个以向后位移的方式比较大小在互换的过程好了不多了先上代码吧如下: 首先还是一个无序列表lis,老规矩 ...

  5. opencv学习笔记(二)寻找轮廓

    opencv学习笔记(二)寻找轮廓 opencv中使用findContours函数来查找轮廓,这个函数的原型为: void findContours(InputOutputArray image, O ...

  6. Python 基础语法(二)

    Python 基础语法(二) --------------------------------------------接 Python 基础语法(一) ------------------------ ...

  7. NewtonPrincipia --- 公理或运动的定律 --- 系理二

    NewtonPrincipia --- 公理或运动的定律 --- 系理二 自然哲学的数学原理>公理或运动的定律>系理II 平行四边形ABCD,那么:直接的力AD由任意的力AB和BD合成,直 ...

  8. Python 数据分析(二 本实验将学习利用 Python 数据聚合与分组运算,时间序列,金融与经济数据应用等相关知识

    Python 数据分析(二) 本实验将学习利用 Python 数据聚合与分组运算,时间序列,金融与经济数据应用等相关知识 第1节 groupby 技术 第2节 数据聚合 第3节 分组级运算和转换 第4 ...

  9. OpenCV Python教程(3、直方图的计算与显示)

    转载请详细注明原作者及出处,谢谢! 本篇文章介绍如何用OpenCV Python来计算直方图,并简略介绍用NumPy和Matplotlib计算和绘制直方图 直方图的背景知识.用途什么的就直接略过去了. ...

  10. 初学 Python(十二)——高阶函数

    初学 Python(十二)--高阶函数 初学 Python,主要整理一些学习到的知识点,这次是高阶函数. #-*- coding:utf-8 -*- ''''' 话说高阶函数: 能用函数作为参数的函数 ...

随机推荐

  1. 微服务与敏捷开发(Scrum/Kanban)的核心思想之我见

    微服务与敏捷开发(Scrum/Kanban)的核心思想之我见   关于"微服务"和"敏捷开发"的文章网络上有很多,所以这里不再重复叙述这些概念的解释和特点,而是 ...

  2. 不看好 git ,也看不懂为什么那么多人去使用 git

    上来就亮明观点,符合我的性格.呵呵呵. 为什么不看好 git 呢? 首先,我们来看看 git 产生的背景. git 是 Linus 开发的,最初的目的,是为了管理 Linux 系统的源代码.这是一个分 ...

  3. Springboot 错误处理机制

    SpringBoot默认的错误处理机制 即我们常见的白色的ErrorPage页面 浏览器发送的请求头: 如果是其他的请求方式,比如客户端,则相应一个json数据: 原理:是通过 ErrorMvcAut ...

  4. java之动态代理设计模式

    代理:专门完成代理请求的操作类,是所有动态代理类的父类,通过此类为一个或多个接口动态地生成实现类. 弄清动态代理的关键是清楚java的反射机制,在https://www.cnblogs.com/xix ...

  5. Centos 中使用通过docker 部署.netcore

    此前,我一直觉得,目前网络上的各种各样的技术文章.技术文档已经足够多,任何一种技术,都可以或多或少的在网络上找到教程,或者在qq群里找到前辈解答.所以,我觉得自己在博客上写文章的意义甚少.甚至觉得自己 ...

  6. SAP 下钻功能大全

    FORM ALV_USER_COMMAND USING R_UCOMM LIKE SY-UCOMM "作为reuse_alv_grid_display的事件i_callback_user_c ...

  7. C#_.NetCore_Web项目_EXCEL数据导出(ExcelHelper_第一版)

    项目需要引用NPOI的Nuget包:DotNetCore.NPOI-v1.2.2 A-前端触发下载Excel的方法有三种: 1-JS-Url跳转请求-后台需要返回文件流数据: window.Locat ...

  8. springboot2.x实现oauth2授权码登陆

    参考文章:https://blog.csdn.net/qq_27828675/article/details/82466599 一 进行授权页 浏览器输入http://localhost:8081/o ...

  9. ceph安装笔记

    配置源 ceph版本为luminous [root@ceph-node1 ~]# yum install -y https://dl.fedoraproject.org/pub/epel/epel-r ...

  10. jQuery入门和DOM对象

    jQuery入门和DOM对象 1.开发准备 1. 下载的版本: jquery-3.3.1.min.js :压缩版,发布版84.8KB jquery-3.3.1.js :常规版,开发版265KB 2. ...