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 二值化处理相关推荐

  1. python opencv二值化图像_python opencv,读取彩色图像,提取三通道,图像二值化,提取图像的边缘...

    python opencv,读取彩色图像,提取三通道,图像二值化,提取图像的边缘 python opencv 1,读取图像 2,图像变矩阵 3,图像转灰度图像 4,彩色图像是3D数组 5,灰度图像是2 ...

  2. python + opencv + 二值化处理图片数据集(三种方法)

    二值化处理图片数据集 首先导入相应的包 cv2即opencv-python包 if __name__ == "__main__": 上面这一句话的含义: 自己的 .py 可以作为自 ...

  3. python opencv图像二值化函数_python opencv 二值化 计算白色像素点的实例

    python opencv 二值化 计算白色像素点的实例 贴部分代码 #! /usr/bin/env python # -*- coding: utf-8 -*- import cv2 import ...

  4. opencv二值化找轮廓检测背景简单小物体

    一.前言 本篇主要是针对背景简单,且具有固定颜色的单类小物体,方法为在灰度化时选用图片的HSV中的S通道,再使用opencv 二值化找轮廓大法可将小物体框出. 原理很简单,图片->取S通道灰度化 ...

  5. opencv 二值化_Python-OpenCV获取图像轮廓的图像处理方法

    一.引言 在<OpenCV阈值处理函数threshold处理32位彩色图像的案例>介绍了threshold 函数,但threshold 的图像阈值处理对于某些光照不均的图像,这种全局阈值分 ...

  6. OpenCV二值化方法

    cvThreshold是opencv库中的一个函数 作用:函数 cvThreshold 对单通道数组应用固定阈值操作.该函数的典型应用是对灰度图像进行阈值操作得到二值图像.(cvCmpS 也可以达到此 ...

  7. OpenCV+MFC学习笔记(二):OpenCV二值化处理图像并在Picture Control中并自适应显示

    在前面我们已经完成通过OpenCV读取图片在Picture Control中并自适应显示.下面我们很自然的需要对读取的图片进行处理,处理完之后很自然的想到要看看效果.所以今天的笔记是通过OpenCV灰 ...

  8. opencv 二值化 python_Python OpenCV 图像二值化-阈值分割

    1.二值化处理 # 手动二值化处理 # 设置阈值大小 threshold thresh = 125 # 设置超过阈值像素值的最大值 maxval = 255 # THRESH_BINARY:超过阈值为 ...

  9. python 图像二值化

    自适应二值化,高斯加权二值化: image =cv2.imread(r'E:\data\barcode\test\1009_11\test\blur\509915979678918664.jpg', ...

最新文章

  1. COMVariantType的Date类型
  2. Android 图片放错位置会拉伸变形
  3. #2002 Cannot log in to the MySQL server, PHPMyAdmin/MySQL
  4. python dlib学习(十二):面部表情跟踪
  5. VTK修炼之道27:图像基本操作_三维图像切片交互提取(回调函数、观察者-命令模式)
  6. 怎样加速微软商店服务器,windows10系统如何加快应用商店打开速度【图文教程】...
  7. c++ 回调函数与std::function使用实例
  8. iview的表格自定义_Vue中使用iview-UI表格样式修改和使用自定义模板数据渲染相关...
  9. 切换表达式到Java吗?
  10. 怎么用python画饼状图_Python入门进阶:Python绘制饼图到Microsoft Excel
  11. IntelliJ IDEA 2020 快捷键私人订制
  12. 使用tr1的bind函数模板
  13. c 语言自行实现字符串常用库函数_学习c语言的7本书——你知道吗?
  14. 二分- Count on Canton
  15. Node聊天程序实例04:chat_ui.js
  16. Struts2 文件上传 文件类型 大小过滤
  17. 【项目实施随笔】生产领料
  18. 如何向maven仓库中上传第三方jar包(私服)
  19. vue之ele组件中的select下拉 绑定对象值
  20. biostarhandboo(三)|本体论和功能分析

热门文章

  1. python计算召回率_序列标注的准确率和召回率计算
  2. “365算法每日学计划”:03打卡-贪心算法
  3. Java Lambda 表达式的常见应用场景
  4. java如何创造一个整数的类_【技术干货】Java 面试宝典:Java 基础部分(1)
  5. 跟我打卡LeetCode 61旋转链表62不同路径63不同路径 II
  6. Springmvc文件上传(servlet3.0)/下载(ssm)以及坑点
  7. java 利用dfs生成简单的随机迷宫(效率不高)
  8. 算法:关于生成抽样随机数的这些算法
  9. 转:用nohup命令让Linux下程序永远在后台执行
  10. python打开文件报错无效序列_psycopg2.DataError:编码“UTF8”的字节序列无效:0xa0