OpenCV--二值化
- 图像的二值化,就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的只有黑和白的视觉效果;
- 二值化一般是提取轮廓的准备工作;
- 二值化处理之后,图像只有0或255,变成黑白图像。
OpenCV中有全局二值化和局部二值化,全局二值化对光线敏感,局部二值化可以克服光线的影响
全局二值化
double threshold( InputArray src,//src输入数组(多通道,8位或32位浮点)。OutputArray dst,//dst输出数组的大小和类型与src相同,通道数相同。double thresh, //二值化阈值,阈值两端的分别置为0、255double maxval, //与#THRESH_BINARY=0和#THRESH_BINARY_INV=1一起使用的maxval最大值类型。(8位图像为255)int type //二值化类型);
全局二值化类型(第五个参数type):
CV_THRESH_BINARY =0, /**值大于阈值置为最大值,否则为0*/CV_THRESH_BINARY_INV =1, /**值大于阈值置为0,否则为最大值*/CV_THRESH_TRUNC =2, /**值大于阈值置为阈值,否则不变*/CV_THRESH_TOZERO =3, /**值大于阈值不变,否则置为0*/CV_THRESH_TOZERO_INV =4, /**值大于阈值置为0,否则不变*/CV_THRESH_OTSU =8, /**<利用大津法自动选择最优阈值;将标志与上述CV_THRESH_x值之一组合 */CV_THRESH_TRIANGLE =16 /**采用三角形算法选择最优阈值;将标志与上述CV_THRESH_x值之一组合,但不能用CV_THRESH_OTSU*/
大津法和三角形算法都是根据图像自动指定最优阈值的算法,不需要人工指定阈值,常用OTSU,减少图像亮度、对比度的影响。
采用大津法自动确定阈值的全局二值化效果:
threshold(inputImg,outImg,100,255,CV_THRESH_OTSU);
局部二值化
void adaptiveThreshold( InputArray src, //src输入数组(多通道,8位或32位浮点)。OutputArray dst,//dst输出数组的大小和类型与src相同,通道数相同。double maxValue, //分配给满足条件的像素的maxValue非零值int adaptiveMethod,//adaptiveMethod要使用的自适应阈值算法int thresholdType, //thresholdType阈值类型,必须是#THRESH_BINARY或#THRESH_BINARY_INVint blockSize, //用于计算阈值的像素邻域的块大小,只能是单数double C //);
自适应阈值化计算大概过程是为每一个象素点单独计算的阈值,即每个像素点的阈值都是不同的,就是将该像素点周围blockSize*blockSize区域内的像素加权平均,然后减去一个常数C,从而得到该点的阈值
自适应阈值算法(第四个参数):
CV_ADAPTIVE_THRESH_MEAN_C =0,//为局部邻域块的平均值,该算法是先求出块中的均值,再减去常数CCV_ADAPTIVE_THRESH_GAUSSIAN_C =1//为局部邻域块的高斯加权和。该算法是在区域中(x, y)周围的像素根据高斯函数按照他们离中心点的距离进行加权计算,再减去常数C。
阈值类型(第五个参数)与全局二值化相同。
采用高斯函数求加权平均的局部二值化效果:
adaptiveThreshold(inputImg,outImg,255,CV_ADAPTIVE_THRESH_GAUSSIAN_C,CV_THRESH_BINARY,15,10);//局部二值化处理
OpenCV--二值化相关推荐
- python opencv图像二值化函数_python opencv 二值化 计算白色像素点的实例
python opencv 二值化 计算白色像素点的实例 贴部分代码 #! /usr/bin/env python # -*- coding: utf-8 -*- import cv2 import ...
- opencv二值化找轮廓检测背景简单小物体
一.前言 本篇主要是针对背景简单,且具有固定颜色的单类小物体,方法为在灰度化时选用图片的HSV中的S通道,再使用opencv 二值化找轮廓大法可将小物体框出. 原理很简单,图片->取S通道灰度化 ...
- python opencv二值化图像_python opencv,读取彩色图像,提取三通道,图像二值化,提取图像的边缘...
python opencv,读取彩色图像,提取三通道,图像二值化,提取图像的边缘 python opencv 1,读取图像 2,图像变矩阵 3,图像转灰度图像 4,彩色图像是3D数组 5,灰度图像是2 ...
- opencv 二值化_Python-OpenCV获取图像轮廓的图像处理方法
一.引言 在<OpenCV阈值处理函数threshold处理32位彩色图像的案例>介绍了threshold 函数,但threshold 的图像阈值处理对于某些光照不均的图像,这种全局阈值分 ...
- OpenCV二值化方法
cvThreshold是opencv库中的一个函数 作用:函数 cvThreshold 对单通道数组应用固定阈值操作.该函数的典型应用是对灰度图像进行阈值操作得到二值图像.(cvCmpS 也可以达到此 ...
- OpenCV+MFC学习笔记(二):OpenCV二值化处理图像并在Picture Control中并自适应显示
在前面我们已经完成通过OpenCV读取图片在Picture Control中并自适应显示.下面我们很自然的需要对读取的图片进行处理,处理完之后很自然的想到要看看效果.所以今天的笔记是通过OpenCV灰 ...
- python + opencv + 二值化处理图片数据集(三种方法)
二值化处理图片数据集 首先导入相应的包 cv2即opencv-python包 if __name__ == "__main__": 上面这一句话的含义: 自己的 .py 可以作为自 ...
- opencv 二值化 python_Python OpenCV 图像二值化-阈值分割
1.二值化处理 # 手动二值化处理 # 设置阈值大小 threshold thresh = 125 # 设置超过阈值像素值的最大值 maxval = 255 # THRESH_BINARY:超过阈值为 ...
- python:opencv 二值化处理
1:二值化处理 https://blog.csdn.net/zj360202/article/details/79165796 定义:图像的二值化,就是将图像上的像素点的灰度值设置为0或255,也就是 ...
- OpenCV二值化cvThreshold和自适应二值化cvAdaptiveThreshold及Otsu
阈值化函数: double cvThreshold(constCvArr* src, CvArr* dst, double threshold, double max_value,int thresh ...
最新文章
- 实操教程|Pytorch常用损失函数拆解
- tar: Cowardly refusing to create an empty archive 问题
- 最新县及县以上行政区划代码(截止2010年12月31日)
- hdoj Last non-zero Digit in N! 【数论】
- 何时查询2021高考成绩长春市,2020年吉林长春成人高考成绩查询入口(已开通)...
- XMind助你快速解决问题
- Servlet(JSP)中动态生成JPG PNG透明 水印图像
- (转)MapReduce中的两表join几种方案简介
- 【大宝的犀牛】飞利浦RQ370剃须刀建模教程
- 测试计划工作的目的是什么?
- 第三方对接-云存储-最新亚马逊Amazon云AWS S3服务JAVA上传图片,访问图片教程(API版本2.14.22)
- 夜曲歌词 拼音_《夜曲》的歌词 - 歌手:周杰伦 (Jay Chou)
- python画笑脸表情_用Matplotlib,妈妈再也不担心我没有表情包斗图了
- 我能使用这台计算机吗英语,使用电脑的英语怎么说
- C - 1111gal password
- 编译原理 最新版 (龙书) 简介and sources
- freecommander 快捷键列表 zz
- 缓解 WPF 应用程序中的空域问题
- 用python画一个汉字_python使用reportlab画图示例(含中文汉字)
- 输入圆形半径,求圆形的周长和圆形的面积,并将结果输出
热门文章
- 李宏毅:1天搞懂深度学习,我总结了 300 页 PPT(附思维导图PPT)
- 运行CATIA2018主程序setup.exe时,报错setup:Problem with VC11 Runtime installation
- 网易云音乐虚化图片html,网易云音乐怎么换背景 背景图片设置方法
- 深入理解JVM虚拟机(总结篇)
- js 正则表达式 判断车牌号
- JS动态加载JSON文件并读取数据
- CentOS配置国内(阿里云)镜像加速器
- Java基础练习题(一维数组)
- Adobe公司和谷歌公司共同开发的字体-思源黑体提供下载
- Android adb重启手机