图像二值化 cv2.threshold
来源:互联网 发布:sql数据库查询工具 编辑:程序博客网 时间:2024/05/17 05:52
图像二值化 cv2.threshold
http://docs.opencv.org/master/d7/d4d/tutorial_py_thresholding.html
(一)简单阈值
import cv2import numpy as npfrom matplotlib import pyplot as pltimg=cv2.imread('1.bmp')# 转灰度图GrayImage=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)# ret,thresh1=cv2.threshold(GrayImage,127,255,cv2.THRESH_BINARY)ret,thresh2=cv2.threshold(GrayImage,127,255,cv2.THRESH_BINARY_INV)ret,thresh3=cv2.threshold(GrayImage,127,255,cv2.THRESH_TRUNC)ret,thresh4=cv2.threshold(GrayImage,127,255,cv2.THRESH_TOZERO)ret,thresh5=cv2.threshold(GrayImage,127,255,cv2.THRESH_TOZERO_INV)titles = ['Gray Image','BINARY','BINARY_INV','TRUNC','TOZERO','TOZERO_INV']images = [GrayImage, thresh1, thresh2, thresh3, thresh4, thresh5]for i in xrange(6): plt.subplot(2,3,i+1),plt.imshow(images[i],'gray') plt.title(titles[i]) plt.xticks([]),plt.yticks([])plt.show()
(二)自适应阈值:
自适应的二值化处理不同于固定阈值的处理,每个像素的阈值依赖于其邻近的像素灰度,为了得到(x,y)点的阈值T(x,y),我们需要进行以下处理。
在此像素周边选取一个bxb的区域,其中了是用户指定的。
计算此bxb区域的加权平均值。OpenCV提供了两种方法计算此加权均值,一种是算术平均法,另一种是高斯加权平均法,后者要计算均值时距离区域中心越近权重越大。我们将得到的加权均值计为WA(x,y)
将上述加权均值与一固定参数相减得到阈值T(x,y),此固定参数设为param1,则(x,y)点的阈值可以用下式进行计算:
T(x,y)=WA(x,y)-param1
import cv2import numpy as npfrom matplotlib import pyplot as pltimg = cv2.imread('sudoku.png',0)img = cv2.medianBlur(img,5)# 简单ret,th1 = cv2.threshold(img,127,255,cv2.THRESH_BINARY)# 自适应th2 = cv2.adaptiveThreshold(img,255,cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY,11,2)th3 = cv2.adaptiveThreshold(img,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY,11,2)titles = ['Original Image', 'Global Thresholding (v = 127)', 'Adaptive Mean Thresholding', 'Adaptive Gaussian Thresholding']images = [img, th1, th2, th3]for i in xrange(4): plt.subplot(2,2,i+1),plt.imshow(images[i],'gray') plt.title(titles[i]) plt.xticks([]),plt.yticks([])plt.show()# cv2.adaptiveThreshold(src, maxValue, adaptiveMethod, thresholdType, blockSize, C[, dst])其中:# src 为输入图像;# maxval 为输出图像的最大值;# adaptiveMethod 设置为cv2.ADAPTIVE_THRESH_MEAN_C表示利用算术均值法,设置为cv2.ADAPTIVE_THRESH_GAUSSIAN_C表示用高斯权重均值法;# thresholdType: 阈值的类型;# blockSize: b的值;# C 为从均值中减去的常数,用于得到阈值;# dst 为目标图像。
(三)Otsu’s二值化
阅读全文
0 0
- 图像二值化 cv2.threshold
- 二值化的cv2.threshold函数
- 图像的二值化函数 threshold
- opencv之图像二值化处理threshold
- cv2读取图像
- opencv: 阈值处理(cv2.threshold) 探究(图示+源码)
- opencv3_java 图像的阈值图像生成Threshold Imgproc.threshold
- opencv: 图像缩放(cv2.resize)
- OpenCV二值化函数Threshold
- OpenCV二值化函数Threshold
- 二值化函数Threshold
- OpenCV二值化函数threshold
- threshold
- 【图像处理】OpenCV函数threshold的使用
- opencv cv2.THRESH_OTSU 二值化
- matplotlib、PIL、cv2图像操作差异分析
- cv2
- Opencv2教程一:图像变换之阈值二值threshold
- hadoop streaming参数整理
- SpringSecurity4最小化配置
- Linux(CentOS)下安装JDK
- Unity 中生成JSON以及对应的解析方法
- 面试题49:把字符串转换成整数
- 图像二值化 cv2.threshold
- Linux : 给硬盘分区
- 关于xgboost安装在anaconda上面(python3.6,64位,windows10)
- C++ 函数模板
- 0day安全——第四章小实验学习笔记
- 欢迎使用CSDN-markdown编辑器
- js实现点击切换checkbox背景图片
- redis安装-主从-哨兵模式
- log4j.properties配置文件