图像阀值

使用工具:Python3.5
使用库:cv2
1.简单阀值
cv2.threshold , cv2.adaptiveThreshold
当像素值高于阀值时,我们给这个像素赋予一个新值(可能是白色),否则我们给它赋予另外一种颜色(也许是黑色)。这个函数就是cv2.threshold()。这个函数的第一个参数就是原图像,原图像应该是灰度图。第二个参数就是用来对像素值进行分类的阀值,第三个参数就是当像素值高于(或者小于)阀值时,应该被赋予新的像素值。OpenCV提供了多种不同的阀值方法,这是有第四个参数来决定的。方法包括:
cv2.THRESH_BINARY
cv2.THRESH_BINARY_INV
cv2.THRESH_TRUNC
cv2.THRESH_TOZERO
cv2.THRESH_TOZERO_INV
函数有两个返回值,第一个为retVal(经过Otsu’s[自己找到一个认为最好的阈值。并且Otsu’s非常适合于图像灰度直方图具有双峰的情况,他会在双峰之间找到一个值作为阈值,对于非双峰图像,可能并不是很好用。]得到的那个阈值),,第二个就是阀值化之后的结果图像了。

2.自适应阀值
根据图像(必须是灰度图)上的每一个小区域计算与其对应的阀值。因此在同一幅图像上的不同区域采用的是不同的阀值,从而使我们能在亮度不同的情况下得到更好的结果。
这种方法需要我们指定三个参数,返回值只有一个。
Adaptive Method 指定计算阀值的方法
-cv2.ADAPTIVE_THRESH_MEAN_C:阀值取自相邻区域的平均值
-cv2.ADAPTIVE_THRESH_GAUSSIAN_C:阀值取自相邻区域的加权和,权重为一个高斯窗口
Block Size 邻域大小(用来计算阀值的区域大小)
C这就是一个常数,阀值就等于的平均值或者加权平均值减去这个常数
3.Otsu’s二值化
我们前面说到,cv2.threshold函数是有两个返回值的,前面一直用的第二个返回值,也就是阈值处理后的图像,那么第一个返回值(得到图像的阈值)将会在这里用到。
前面对于阈值的处理上,我们选择的阈值都是127,那么实际情况下,怎么去选择这个127呢?有的图像可能阈值不是127得到的效果更好。那么这里我们需要算法自己去寻找到一个阈值,而Otsu’s就可以自己找到一个认为最好的阈值。并且Otsu’s非常适合于图像灰度直方图具有双峰的情况,他会在双峰之间找到一个值作为阈值,对于非双峰图像,可能并不是很好用。那么经过Otsu’s得到的那个阈值就是函数cv2.threshold的第一个参数了。因为Otsu’s方法会产生一个阈值,那么函数cv2.threshold的的第二个参数(设置阈值)就是0了,并且在cv2.threshold的方法参数中还得加上语句cv2.THRESH_OTSU。

openCV 图像阀值相关推荐

  1. OpenCV图像梯度(Sobel和Scharr)

    OpenCV图像梯度(Sobel和Scharr) 1 图像梯度是什么? 2 图像梯度的用途 3 图像梯度的使用 参考 这篇博客将介绍图像渐变以及如何使用OpenCV的cv2.Sobel计算Sobel渐 ...

  2. Python,OpenCV图像金字塔cv2.pyrUp(), cv2.pyrDown()

    Python,OpenCV图像金字塔cv2.pyrUp, cv2.pyrDown 1. 效果图 2. 原理 2.1 什么是图像金字塔 2.2 金字塔分类 2.3 应用 3. 源码 参考 这篇博客将介绍 ...

  3. OpenCV图像缩放插值之BiCubic双三次插值

    图像缩放算法简介 在图像的仿射变换中,很多地方需要用到插值运算,常见的插值运算包括最邻近插值,双线性插值,双三次插值(立体插值),兰索思插值等方法,OpenCV提供了很多方法,其中,双线性插值由于折中 ...

  4. python皮同_Python OpenCV 图像的双线性插值算法,全网最细致的算法说明_橡皮擦,一个逗趣的互联网高级网虫-CSDN博客...

    原文作者:梦想橡皮擦 原文标题:Python OpenCV 图像的双线性插值算法,全网最细致的算法说明 发布时间:2021-02-17 20:55:32 Python OpenCV 365 天学习计划 ...

  5. OpenCV 图像加载和显示

    OpenCV 图像加载和显示 OpenCV 图像加载和显示 加载图像(使用cv :: imread) 创建一个名为OpenCV的窗口(使用cv :: namedWindow) 在OpenCV窗口中显示 ...

  6. OpenCV图像坐标系与行列宽高的关系

    这篇文章挺好    OpenCV图像坐标系与行列宽高的关系 图片坐标系,与从小到大见到的xy坐标系,x轴方向相同,只是y轴方向相反.

  7. python使用openCV图像加载(转化为灰度图像)、Canny边缘检测器检测图像的边缘(Detect Edges)

    python使用openCV图像加载(转化为灰度图像).Canny边缘检测器检测图像的边缘(Detect Edges) 目录

  8. python使用openCV图像加载(转化为灰度图像)、使用filter2D函数对图像进行锐化(Sharpen Images)

    python使用openCV图像加载(转化为灰度图像).使用filter2D函数对图像进行锐化(Sharpen Images) 目录

  9. python opencv 图像膨胀

    python opencv 图像膨胀 代码: import cv2 import numpy as np # 图像膨胀 def dilate_img(img,a,iterations):kernel ...

  10. python opencv 图像旋转

    python opencv 图像旋转 原图 顺时针旋转 代码: import cv2 path = '2.jpg' img = cv2.imread(path,1) trans_img = cv2.t ...

最新文章

  1. 全面解析YOLO V4网络结构
  2. 【synchronized底层原理之4】锁的升级过程及比较
  3. 深入分析 ThreadLocal 内存泄漏问题
  4. r与python自然语言处理_Python自然语言处理实践: 在NLTK中使用斯坦福中文分词器 | 我爱自然语言处理...
  5. 序列二次规划_最优控制与规划
  6. mschart mysql_在VB mschart里面可以一个MSCHART同时显示曲线和状图吗?
  7. mysql create database 语法_MySQL中CREATE DATABASE语法总结
  8. 置换群burnside引理(bzoj 1004: [HNOI2008]Cards)
  9. Informatica通过人工智能重新定义数据管理助力数据驱动型数字化转型
  10. 网络空间安全复习归纳
  11. Win10上的dll依赖查看工具Dependencies
  12. 第四章 基于QT和DCMTK的Dicom 图像浏览器---检查文件夹下Dicom序列个数
  13. Error response from daemon: failed to parse mydockerfile-centos: ENV must have two arguments
  14. python爬虫自学笔记本(2015.12.14)
  15. 金沙艺廊于澳门四季名荟正式开幕;招商维京游轮深耕“文游”助力中国旅游业高质量发展 | 全球旅报...
  16. 微信小程序中使用iconfont阿里巴巴矢量图标
  17. Adobe Acrobat Xi Pro v11.0.10官方简体中文版 功能强大【推荐】
  18. 2019.1.21【NOIP提高组】模拟B组 JZOJ 4208 线段树什么的最讨厌了
  19. JS 中对象的深浅拷贝(ES3、ES5、ES6不同方法底层实现,一文搞清楚深浅拷贝面试常问题)
  20. 网格计算Grid Computing

热门文章

  1. 市县城镇开发边界内1:500地形图无人机航测实践(M300 RTK+P1+大疆智图+航天远景采集软件)
  2. 软件工程需求分析-需求规格说明书
  3. Firefox在win10与win11系统上账号不同步的解决办法
  4. SQL中的where语句的用法及实例——条件查询
  5. 2020-09-24L1-016 查验身份证 (15分) 一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,
  6. ADS EM MODEL 问题
  7. 小米浏览器禁用java_小米手机调试总出现“INSTALL_CANCELED_BY_USER”
  8. 迅雷精简版依托迅雷强大的P2P资源网络和独特的下载技术
  9. easydarwin php,Windows版本EasyDarwin
  10. 因一纸设计稿,我把竞品APP扒得裤衩不剩(上)