- 浏览: 499211 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (502)
- Java (70)
- Linux (10)
- 数据库 (38)
- 网络 (10)
- WEB (13)
- JSP (4)
- 互联网 (71)
- JavaScript (30)
- Spring MVC (19)
- HTML (13)
- CSS (3)
- AngularJS (18)
- Redis (5)
- Bootstrap CSS (1)
- ZooKeeper (4)
- kafka (6)
- 服务器缓存 (4)
- Storm (1)
- MongoDB (9)
- Spring boot (16)
- log4j (2)
- maven (3)
- nginx (5)
- Tomcat (2)
- Eclipse (4)
- Swagger (2)
- Netty (5)
- Dubbo (1)
- Docker (7)
- Hadoop (12)
- OAuth (1)
- webSocket (4)
- 服务器性能 (7)
- Session共享 (1)
- tieye修改 (1)
- 工作 (1)
- 有用的语录 (0)
- https (2)
- common (5)
- 产品开发管理 (1)
- CDN 工作原理 (1)
- APNS、GCM (1)
- 架构图 (3)
- 功能实现分析 (1)
- JMX (1)
- 服务器相关操作命令 (1)
- img02 (0)
- 服务器环境搭建 (9)
- goodMenuBook (1)
- CEInstantPot (0)
- 有用数据 (1)
- 百度地图WEB API (2)
- 正则表达式 (1)
- 样式例子 (2)
- staticRecipePressureCooker.zip (1)
- jCanvas (1)
- 网站攻击方法原理 (1)
- 架构设计 (3)
- 物联网相关 (3)
- 研发管理 (7)
- 技术需求点 (1)
- 计划 (1)
- spring cloud (11)
- 服务器开发的一些实用工具和方法 (1)
- 每天学到的技术点 (4)
- Guava (1)
- ERP 技术注意要点 (2)
- 微信小程序 (1)
- FineRepor (1)
- 收藏夹 (1)
- temp (5)
- 服务架构 (4)
- 任职资格方案 (0)
- osno_test (1)
- jquery相关 (3)
- mybatis (4)
- ueditor (1)
- VueJS (7)
- python (10)
- Spring EL (1)
- shiro (1)
- 前端开发原理与使用 (7)
- YARN (1)
- Spark (1)
- Hbase (2)
- Pig (2)
- 机器学习 (30)
- matplotlib (1)
- OpenCV (17)
- Hystrix (1)
- 公司 (1)
- miniui (4)
- 前端功能实现 (3)
- 前端插件 (1)
- 钉钉开发 (2)
- Jenkins (1)
- elasticSearch使用 (2)
- 技术规范 (4)
- 技术实现原理 (0)
最新评论
opencv 阈值分割
同的阈值方法”二值化”图像。
使用固定阈值、自适应阈值和Otsu阈值法”二值化”图像
OpenCV函数:cv2.threshold(), cv2.adaptiveThreshold()
自适应阈值是以一个小区域进行的的
固定阈值分割
固定阈值分割很直接,一句话说就是像素点值大于阈值一个值,小于阈值是另外一个值。
cv2.threshold()用来实现阈值分割,ret是return value缩写,代表当前的阈值,暂时不用理会。函数有4个参数:
参数1:要处理的原图,一般是灰度图
参数2:设定的阈值
参数3:最大阈值,一般为255
参数4:阈值的方式,主要有5种,详情:ThresholdTypes
https://docs.opencv.org/3.3.1/d7/d1b/group__imgproc__misc.html#gaa9e58d2860d4afa658ef70a9b1115576
自适应阈值
看得出来固定阈值是在整幅图片上应用一个阈值进行分割,它并不适用于明暗分布不均的图片。cv2.adaptiveThreshold()自适应阈值会每次取图片的一小部分计算阈值,这样图片不同区域的阈值就不尽相同。它有5个参数
th2 = cv2.adaptiveThreshold(
img, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, 11, 4)
参数1:要处理的原图
参数2:最大阈值,一般为255
参数3:小区域阈值的计算方式
ADAPTIVE_THRESH_MEAN_C:小区域内取均值
ADAPTIVE_THRESH_GAUSSIAN_C:小区域内加权求和,权重是个高斯核
参数4:阈值方式(跟前面讲的那5种相同)
参数5:小区域的面积,如11就是11*11的小块
参数6:最终阈值等于小区域计算出的阈值再减去此值
Otsu阈值是一种高效的二值化算法,
同的阈值方法”二值化”图像。
使用固定阈值、自适应阈值和Otsu阈值法”二值化”图像
OpenCV函数:cv2.threshold(), cv2.adaptiveThreshold()
自适应阈值是以一个小区域进行的的
固定阈值分割
固定阈值分割很直接,一句话说就是像素点值大于阈值一个值,小于阈值是另外一个值。
cv2.threshold()用来实现阈值分割,ret是return value缩写,代表当前的阈值,暂时不用理会。函数有4个参数:
参数1:要处理的原图,一般是灰度图
参数2:设定的阈值
参数3:最大阈值,一般为255
参数4:阈值的方式,主要有5种,详情:ThresholdTypes
https://docs.opencv.org/3.3.1/d7/d1b/group__imgproc__misc.html#gaa9e58d2860d4afa658ef70a9b1115576
自适应阈值
看得出来固定阈值是在整幅图片上应用一个阈值进行分割,它并不适用于明暗分布不均的图片。cv2.adaptiveThreshold()自适应阈值会每次取图片的一小部分计算阈值,这样图片不同区域的阈值就不尽相同。它有5个参数
th2 = cv2.adaptiveThreshold(
img, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, 11, 4)
参数1:要处理的原图
参数2:最大阈值,一般为255
参数3:小区域阈值的计算方式
ADAPTIVE_THRESH_MEAN_C:小区域内取均值
ADAPTIVE_THRESH_GAUSSIAN_C:小区域内加权求和,权重是个高斯核
参数4:阈值方式(跟前面讲的那5种相同)
参数5:小区域的面积,如11就是11*11的小块
参数6:最终阈值等于小区域计算出的阈值再减去此值
Otsu阈值是一种高效的二值化算法,
# -*-encoding:utf-8-*- import pytesseract from PIL import Image from PIL import ImageFilter from PIL import ImageFont from PIL import ImageDraw import numpy as np from PIL import Image import cv2 import matplotlib.pyplot as plt def main(): # 颜色空间转换 img = cv2.imread("learn.jpg") img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 阈值分割 ret, th = cv2.threshold(img_gray, 127, 255, cv2.THRESH_BINARY) # cv2.imshow('thresh', th) # cv2.waitKey(0) # 参数1:要处理的原图,一般是灰度图 # 参数2:设定的阈值(小于为0,大于为255) # 参数3:最大阈值,一般为255 # 参数4:阈值的方式,主要有5种,详情:ThresholdTypes # ret是return value缩写,代表当前的阈值, # 应用5种不同的阈值方法 ret, th1 = cv2.threshold(img_gray, 127, 255, cv2.THRESH_BINARY) ret, th2 = cv2.threshold(img_gray, 127, 255, cv2.THRESH_BINARY_INV) ret, th3 = cv2.threshold(img_gray, 127, 255, cv2.THRESH_TRUNC) ret, th4 = cv2.threshold(img_gray, 127, 255, cv2.THRESH_TOZERO) ret, th5 = cv2.threshold(img_gray, 127, 255, cv2.THRESH_TOZERO_INV) titles = ['Original', 'BINARY', 'BINARY_INV', 'TRUNC', 'TOZERO', 'TOZERO_INV'] images = [img, th1, th2, th3, th4, th5] # 使用Matplotlib显示 for i in range(6): plt.subplot(2, 3, i + 1) plt.imshow(images[i], 'gray') plt.title(titles[i], fontsize=8) plt.xticks([]), plt.yticks([]) # 隐藏坐标轴 plt.show() # 自适应阈值 # 看得出来固定阈值是在整幅图片上应用一个阈值进行分割,它并不适用于明暗分布不均的图 th2 = cv2.adaptiveThreshold( img_gray, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, 11, 4) th3 = cv2.adaptiveThreshold( img_gray, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, 17, 6) titles = ['Original', 'Global(v = 127)', 'Adaptive Mean', 'Adaptive Gaussian'] images = [img, th1, th2, th3] for i in range(4): plt.subplot(2, 2, i + 1), plt.imshow(images[i], 'gray') plt.title(titles[i], fontsize=8) plt.xticks([]), plt.yticks([]) plt.show() if __name__ == '__main__': main()
发表评论
-
识别图片中的人脸
2018-10-31 21:21 796识别图片中的人脸 # -*-encoding:ut ... -
opencv 霍夫变换(识别出图像中的直线和圆)
2018-10-23 20:34 3121# -*-encoding:utf-8-*- import ... -
opencv 模板匹配(在大图中找小图)
2018-10-22 21:31 8437# -*-encoding:utf-8-*- import ... -
opencv 直方图
2018-10-22 21:30 500# -*-encoding:utf-8-*- import ... -
opencv 轮廓特征
2018-10-21 20:35 1236# -*-encoding:utf-8-*- import ... -
opencv 轮廓
2018-10-21 20:34 522# -*-encoding:utf-8-*- import ... -
opencv 膨胀腐蚀开闭
2018-10-21 20:34 878# -*-encoding:utf-8-*- import ... -
opencv 边缘检测
2018-10-21 20:32 770# -*-encoding:utf-8-*- import ... -
opencv 平滑图像
2018-10-17 21:25 726opencv 平滑图像 模糊/平滑图片来消除图片噪声 O ... -
opencv 图像混合
2018-10-17 20:58 712opencv 图像混合 图片间的数学运算,如相加、按位运算 ... -
opencv 绘图功能
2018-10-16 22:04 844opencv 绘图功能 学习画线、圆和矩形等多种几何形状, ... -
opencv 图像几何变换
2018-10-16 19:36 920opencv 图像几何变换 实现旋转、平移和缩放图片 了解仿 ... -
opencv 颜色空间转换
2018-10-15 19:42 1315opencv 颜色空间转换 颜色空间转换,如BGR↔Gray ... -
openvc 图像基本操作
2018-10-15 19:11 977openvc 图像基本操作 访问和修改图片像素点的值 px ... -
Python OpenCV 基本操作
2018-10-12 22:46 399Python OpenCV 基本操作 加载图片,显示图片, ... -
Python OpenCV 形态学操作(腐蚀膨胀,开运算和闭运算)
2018-10-12 22:32 5348Python OpenCV 形态学操作(腐蚀膨胀,开运算和闭运 ...
相关推荐
OpenCV中的阈值分割是一种图像处理技术,用于将图像转换为二值或多级阈值图像。这种技术在图像分析、目标检测和模式识别等领域有着广泛的应用。本文将详细介绍OpenCV中阈值分割的几种方法,并通过示例代码进行解析。...
**OpenCV大津法阈值分割** OpenCV大津法阈值分割是一种广泛应用于图像处理中的二值化技术,尤其在计算机视觉、机器学习和图像分析领域中具有重要地位。该方法是由日本学者大津(Otsu)于1979年提出的,因此被称为...
本篇文章将深入探讨如何利用OpenCV实现Otsu阈值分割,并基于`LocalOstu.cpp`代码文件讲解其实现过程。 首先,让我们理解什么是Otsu阈值分割。Otsu算法是基于统计学的一种自动阈值选择方法,由Otsu在1979年提出。它...
本文将深入探讨“opencv 简单统计法 阈值分割”这一主题,包括其基本原理、实现方法以及在实际应用中的优缺点。 阈值分割是图像处理中的基础操作,主要用于将图像二值化,即将图像中的像素点分为两类,通常是前景和...
将信息论中的 shannon 熵概念用于...这里参考网友的资料,根据代码在运行过程的错误调试,实现最大熵阈值分割,开发环境VS2012+OpenCV2.4.10,这个是OpenCV1指针操作版本,需要的朋友可以根据自己实际情况配置OpenCV。
### Python + OpenCV 实现阈值分割 #### 知识点概述 1. **Python与OpenCV集成**:介绍如何将Python与OpenCV相结合来处理图像数据。 2. **阈值分割原理**:阐述阈值分割的基本概念及其在图像处理中的应用。 3. **...
**OpenCV3与Visual Studio 12:阈值分割代码详解** 在计算机视觉领域,阈值分割是一种常见的图像处理技术,用于将图像分为前景和背景两部分。在本教程中,我们将探讨如何使用OpenCV3库和Visual Studio 12进行阈值...
OpenCV实现C++的Otsu自适应阈值分割算法描述 OpenCV是一个功能强大且广泛使用的计算机视觉库,提供了许多实用的图像处理算法和工具。其中,Otsu自适应阈值分割算法是一个常用的图像分割方法,该算法可以自动选择...
**OpenCV实现Otsu阈值分割** 在图像处理领域,阈值分割是一种常见的技术,用于将图像划分为前景和背景两部分。Otsu阈值分割法是一种自适应的二值化方法,尤其适用于图像光照不均匀的情况。OpenCV库提供了一种简单而...
9. **编程实现**:在实际应用中,通常使用编程语言(如Python、MATLAB)结合图像处理库(如OpenCV、Scikit-image)来实现阈值分割算法。 10. **应用实例**:阈值分割在水资源管理、灾害监测、城市规划等领域有广泛...
在**OpenCV**库中,Otsu双阈值分割被用于处理灰度图像。OpenCV是一个强大的计算机视觉库,支持多种编程语言,如C++、Python等,提供了丰富的函数和模块,方便开发者进行图像处理和分析。 具体来说,Otsu算法的步骤...
OpenCV局部动态阈值分割 OpenCV是一款功能强大的计算机视觉库,为开发者提供了丰富的图像处理功能。本文将详细介绍如何利用OpenCV实现局部动态阈值分割,并对相关的知识点进行详细的解释。 阈值分割 阈值分割是一...
OpenCV提供了多种图像分割方法,例如阈值分割、区域生长、边缘检测、水平集、GrabCut等。在这个程序中,很可能是结合了图像金字塔和特定的分割算法,如GrabCut或Felzenszwalb和Huttenlocher的分水岭算法,这些算法...
阈值分割是图像处理中的一个基础且重要的技术,主要用于将图像划分为不同的区域或对象,以便于后续的分析和识别。在这个"阈值分割源程序"中,我们可以深入理解这一概念及其在实际应用中的实现。 图像分割是图像分析...
本教程将聚焦于如何利用OpenCV实现一个简单的阈值分割任务,以提取图像中的线条数据。我们将通过以下步骤来完成这个过程: 1. **导入必要的库**: 在Python环境中,我们需要首先导入OpenCV库(cv2)以及Numpy库,...
1. 图像预处理:包括灰度化、平滑滤波(如高斯滤波)以及阈值分割,目的是减少噪声并使图像便于处理。 2. 边缘检测:使用Canny边缘检测或者其他的边缘检测算法,得到可能的边缘线条。 3. 边缘连接与轮廓提取:使用...
本主题聚焦于如何利用OpenCV库处理果实图像,通过颜色空间的阈值分割方法来识别图像中的果实。OpenCV是一个强大的开源计算机视觉库,广泛应用于图像处理和计算机视觉任务。 首先,我们要理解HSV色彩空间。HSV(Hue,...
在本文中,我们将深入探讨自适应阈值分割的基本原理、OpenCV中的实现方式以及如何通过滑动条进行参数调整。 首先,让我们理解什么是自适应阈值分割。传统的全局阈值分割方法使用单一阈值对整个图像进行分割,但这种...