python:opencv 二值化处理
1:二值化处理
https://blog.csdn.net/zj360202/article/details/79165796
定义:图像的二值化,就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的只有黑和白的视觉效果。
一幅图像包括目标物体、背景还有噪声,要想从多值的数字图像中直接提取出目标物体,常用的方法就是设定一个阈值T,用T将图像的数据分成两部分:大于T的像素群和小于T的像素群。这是研究灰度变换的最特殊的方法,称为图像的二值化(Binarization)。
简单的阈值-(全局阈值):
Python-OpenCV中提供了阈值(threshold)函数:
cv2.threshold()
函数:第一个参数 src 指原图像,原图像应该是灰度图。
第二个参数 x 指用来对像素值进行分类的阈值。
第三个参数 y 指当像素值高于(有时是小于)阈值时应该被赋予的新的像素值
第四个参数 Methods 指,不同的不同的阈值方法,这些方法包括:
•cv2.THRESH_BINARY 图(1)
•cv2.THRESH_BINARY_INV 图(2)
•cv2.THRESH_TRUNC 图(3)
•cv2.THRESH_TOZERO 图(4)
•cv2.THRESH_TOZERO_INV 图(5)
破折线为将被阈值化的值;虚线为阈值
图(1)
大于阈值的像素点的灰度值设定为最大值(如8位灰度值最大为255),灰度值小于阈值的像素点的灰度值设定为0。
图(2)
大于阈值的像素点的灰度值设定为0,而小于该阈值的设定为255。
图(3)
像素点的灰度值小于阈值不改变,大于阈值的灰度值的像素点就设定为该阈值。
图(4)
像素点的灰度值小于该阈值的不进行任何改变,而大于该阈值的部分,其灰度值全部变为0。
图(5)
像素点的灰度值大于该阈值的不进行任何改变,像素点的灰度值小于该阈值的,其灰度值全部变为0。
import cv2
import numpy as np
from matplotlib import pyplot as plt
img=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()
python:opencv 二值化处理相关推荐
- python opencv二值化图像_python opencv,读取彩色图像,提取三通道,图像二值化,提取图像的边缘...
python opencv,读取彩色图像,提取三通道,图像二值化,提取图像的边缘 python opencv 1,读取图像 2,图像变矩阵 3,图像转灰度图像 4,彩色图像是3D数组 5,灰度图像是2 ...
- python + opencv + 二值化处理图片数据集(三种方法)
二值化处理图片数据集 首先导入相应的包 cv2即opencv-python包 if __name__ == "__main__": 上面这一句话的含义: 自己的 .py 可以作为自 ...
- python opencv图像二值化函数_python opencv 二值化 计算白色像素点的实例
python opencv 二值化 计算白色像素点的实例 贴部分代码 #! /usr/bin/env python # -*- coding: utf-8 -*- import cv2 import ...
- opencv二值化找轮廓检测背景简单小物体
一.前言 本篇主要是针对背景简单,且具有固定颜色的单类小物体,方法为在灰度化时选用图片的HSV中的S通道,再使用opencv 二值化找轮廓大法可将小物体框出. 原理很简单,图片->取S通道灰度化 ...
- opencv 二值化_Python-OpenCV获取图像轮廓的图像处理方法
一.引言 在<OpenCV阈值处理函数threshold处理32位彩色图像的案例>介绍了threshold 函数,但threshold 的图像阈值处理对于某些光照不均的图像,这种全局阈值分 ...
- OpenCV二值化方法
cvThreshold是opencv库中的一个函数 作用:函数 cvThreshold 对单通道数组应用固定阈值操作.该函数的典型应用是对灰度图像进行阈值操作得到二值图像.(cvCmpS 也可以达到此 ...
- OpenCV+MFC学习笔记(二):OpenCV二值化处理图像并在Picture Control中并自适应显示
在前面我们已经完成通过OpenCV读取图片在Picture Control中并自适应显示.下面我们很自然的需要对读取的图片进行处理,处理完之后很自然的想到要看看效果.所以今天的笔记是通过OpenCV灰 ...
- opencv 二值化 python_Python OpenCV 图像二值化-阈值分割
1.二值化处理 # 手动二值化处理 # 设置阈值大小 threshold thresh = 125 # 设置超过阈值像素值的最大值 maxval = 255 # THRESH_BINARY:超过阈值为 ...
- python 图像二值化
自适应二值化,高斯加权二值化: image =cv2.imread(r'E:\data\barcode\test\1009_11\test\blur\509915979678918664.jpg', ...
最新文章
- COMVariantType的Date类型
- Android 图片放错位置会拉伸变形
- #2002 Cannot log in to the MySQL server, PHPMyAdmin/MySQL
- python dlib学习(十二):面部表情跟踪
- VTK修炼之道27:图像基本操作_三维图像切片交互提取(回调函数、观察者-命令模式)
- 怎样加速微软商店服务器,windows10系统如何加快应用商店打开速度【图文教程】...
- c++ 回调函数与std::function使用实例
- iview的表格自定义_Vue中使用iview-UI表格样式修改和使用自定义模板数据渲染相关...
- 切换表达式到Java吗?
- 怎么用python画饼状图_Python入门进阶:Python绘制饼图到Microsoft Excel
- IntelliJ IDEA 2020 快捷键私人订制
- 使用tr1的bind函数模板
- c 语言自行实现字符串常用库函数_学习c语言的7本书——你知道吗?
- 二分- Count on Canton
- Node聊天程序实例04:chat_ui.js
- Struts2 文件上传 文件类型 大小过滤
- 【项目实施随笔】生产领料
- 如何向maven仓库中上传第三方jar包(私服)
- vue之ele组件中的select下拉 绑定对象值
- biostarhandboo(三)|本体论和功能分析
热门文章
- python计算召回率_序列标注的准确率和召回率计算
- “365算法每日学计划”:03打卡-贪心算法
- Java Lambda 表达式的常见应用场景
- java如何创造一个整数的类_【技术干货】Java 面试宝典:Java 基础部分(1)
- 跟我打卡LeetCode 61旋转链表62不同路径63不同路径 II
- Springmvc文件上传(servlet3.0)/下载(ssm)以及坑点
- java 利用dfs生成简单的随机迷宫(效率不高)
- 算法:关于生成抽样随机数的这些算法
- 转:用nohup命令让Linux下程序永远在后台执行
- python打开文件报错无效序列_psycopg2.DataError:编码“UTF8”的字节序列无效:0xa0