对图像进行预处理(灰度化,二值化)

一、图像灰度化处理

图像灰度化是指每个像素只有一个采样颜色的图像,这类图像通常显示为从最暗黑色到最亮的白色的灰度。
  灰度图像与黑白图像不同,在计算机图像领域中黑白图像只有黑白两种颜色,一般称为二值图(0 or 255),灰度图在黑色与白色中间还有很多级的颜色深度(0-255)。
在RGB模型中,如果R=G=B是,则彩色表示一种灰度颜色,其中R=G=B的值叫灰度值。

1.图像灰度化的方法

灰度化方法主要有,分量法,最大值法,平均值法和加权平均值法。

  • 平均值法:将彩色图像中的三分量亮度求平均得到一个灰度图。
  • 最大值法:将彩色图像中的三分量亮度的最大值作为灰度图的灰度值;
  • 分量法:算法思想是先把RGB 每个分量的值作为图像的灰度值,这样就得到原图像的三个灰度图像,然后选择三个中的一个灰度图,即用RGB 三个分量的某一个分量作为该点的灰度值。
  • 加权平均法:该算法主要就是根据某种条件,将三个分量以不同的权值进行加权平均;
    公式如下图所示:

      现以加权放大的灰度图变换为例,是将其三个分量以不同的权值进行加权平均,由于人眼对绿色敏感程度最高,对蓝色敏感最低,因此,按下式对RGB三分量进行加权平均能后得到较为合理的灰度图像。

      首先通过cv2读取图片,将其高度、宽度提取出来,在通过以上公式对每个通道的每个像素进行加权操作,使用此公式的代码为:
import cv2
import numpy as np  image = cv2.imread('.\\test1.png')
#读取图片像素高宽
sp = image.shape
height = sp[0]
width = sp[1]
#创建同样高宽的画布
new = np.zeros((height,width,3), np.uint8)
#遍历每个像素
#使用加权平均法算得灰度图
for i in range(height):   for j in range(width):   new[i,j] = 0.3 * image[i,j][0] + 0.59 * image[i,j][1] + 0.11 * image[i,j][2]   cv2.namedWindow('Image')
cv2.imshow('Image', new)  cv2.imwrite("E:\\linedetect\\test1-gray.jpg", new)  cv2.waitKey(0)
cv2.destroyAllWindows() 

此外,当图片为BGR格式时,可以通过以下Opencv自带语句完成对图像的灰度化处理。

gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

如果使用cv2.imread()函数读取图片时,读取进来的图片色彩通道格式为BGR,可直接使用以上函数进行灰度化;但是如果使用cv2.imdecode()函数进行读取图片,则读入的图片格式为RGB,需要用以下函数进行色彩通道的转换。

cv_img = cv2.imdecode(filePath,cv2.IMREAD_COLOR)
cv_img = cv2.cvtColor(cv_img,cv2.COLOR_RGB2BGR)
gray = cv2.cvtColor(cv_img,cv2.COLOR_BGR2GRAY)

二、图像二值化处理

二值图像(Binary Image)是指将图像上的每一个像素只有两种可能的取值或灰度等级状态,人们经常用黑白、B&W、单色图像表示二值图像。二值图像是指在图像中,灰度等级只有两种,也就是说,图像中的任何像素点的灰度值均为0或者255,分别代表黑色和白色。

通过Opencv自带的函数对经过灰度化的图像进行处理,使用cv.Threshold()函数进行操作。

  实例中,img_gauss是进过高斯平滑滤波以后的图像,127与255是对图像二值化的分割阈值和最大值,即灰度值在127-255之间的值都被置位1,其余置位0。二值化的图片对车道线提取比较干净,但天空和白色车辆提取不是很干净。
  最后cv2.THRESH_BINARY_INV对二值化的图像进行逆操作,得到想要的效果。
返回值ret:暂时就认为是设定的thresh阈值,binary:二值化的图像

ret, binary = cv2.threshold(img_gauss,127,255, cv2.THRESH_BINARY_INV)

(二)对图像进行预处理(灰度化,二值化)相关推荐

  1. Python使用openCV把原始彩色图像转化为灰度图、使用OpenCV把图像二值化(仅仅包含黑色和白色的简化版本)、基于自适应阈值预处理(adaptive thresholding)方法

    Python使用openCV把原始彩色图像转化为灰度图.使用OpenCV把图像二值化(仅仅包含黑色和白色的简化版本).基于自适应阈值预处理(adaptive thresholding)方法 目录

  2. 图像预处理-灰度化、二值化(Python)

    图像预处理-灰度化.二值化 1. 图像灰度化.二值化--2021 Texas州暴雪 1.1 图像灰度化 1.2 图像二值化 2. 图像灰度化.二值化结果--Jp社会 3. 一点点坐井观天的思考 1. ...

  3. 图像预处理(二值化)

    图像预处理(二值化) 本文的实验是主要通过opencv与python3实现,相关的代码可以在GitHub中找到. 1. 图像获取与灰度化 通过摄像头获取到的图像为彩色的图像.彩色图像主要分为两种类型, ...

  4. Python-OpenCV 处理图像(六)(七)(八):对象识别 图像灰度化处理 图像二值化处理

    为了加快处理速度,在图像处理算法中,往往需要把彩色图像转换为灰度图像. 0x00. 灰度图 灰度数字图像是每个像素只有一个采样颜色的图像,这类图像通常显示为从最暗黑色到最亮的白色的灰度. 灰度图像与黑 ...

  5. opencv 图像分割 阈值分割 图像二值化 灰度图

    # -*- coding: utf-8 -*- """ @File : 191213_测试_阈值分割.py @Time : 2019/12/13 15:14 @Autho ...

  6. c#图像灰度化、灰度反转、二值化

    图像灰度化: 将彩色图像转化成为灰度图像的过程成为图像的灰度化处理.彩色图像中的每个像素的颜色有R.G.B三个分量决定,而每个分量有255中值可取,这样一个像素点可以有1600多万(255*255*2 ...

  7. 图像的色彩类别,灰度化,二值化

    灰度化:在RGB模型中,如果R=G=B时,则彩色表示一种灰度颜色,其中R=G=B的值叫灰度值,因此,灰度图像每个像素只需一个字节存放灰度值(又称强度值.亮度值),灰度范围为0-255.一般常用的是加权 ...

  8. 【OpenCV 例程200篇】37. 图像的灰度化处理和二值化处理

    [OpenCV 例程200篇]37. 图像的灰度化处理和二值化处理 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 按 ...

  9. cv2 inrange灰度图_基于openCV,PIL的深色多背景复杂验证码图像转灰度二值化,并去噪降噪处理分析...

    title: [python]基于openCV,PIL的深色多背景复杂验证码图像转灰度二值化,并去噪降噪处理分析 type: categories copyright: true categories ...

最新文章

  1. 程序员们的启蒙老师,终于拿图灵奖了
  2. 百度娱乐沸点颁奖典礼,温度太低的“沸点”
  3. python爬虫自学网站_Python爬虫3步曲:5分钟学习用Python解析网页
  4. Linux入门(9)——Ubuntu16.04安装flash player
  5. JPA使用指南 javax.persistence的注解配置
  6. 过虑数字类型后面的0
  7. boost::gregorian模块实现日期序列化的测试程序
  8. Linux之环境变量
  9. 基于JindoFS+OSS构建高效数据湖
  10. 计算机 科学计算应用邻预,电子计算机的工作特性主要有什么
  11. linux ls 目录结构,linux 系统目录结构 ls命令 文件类型 alias命令
  12. 从《觉醒年代》看如何用Python来绘制可视化仪表盘
  13. R语言中文社区10篇最火的文章 | 2017大盘点
  14. 【ARC083E】Bichrome Tree
  15. 来给你的CSDN博客换个皮肤~
  16. RT-Thread Studio中使用DHT11软件包
  17. DXP2004/Altium Desinger 自己画元器件和封装,及注意事项
  18. java山地自行车怎么看型号_怎么看捷安特山地车型号
  19. Ice helloworld
  20. CSS3 filter滤镜详解

热门文章

  1. 计算机教研实训报告,2020计算机实训心得体会范文
  2. 对象布局(JOL)、分配过程以及访问定位
  3. AngularJS之有序列表
  4. linux日志查看技巧
  5. [Ant][StartWithAnt] 第七章 Ant扩展包ant-contrib的使用
  6. Tomcat 基础配置
  7. 激活函数(sigmoid、tanh、ReLU、leaky ReLU)
  8. ros订阅相机深度信息_基于深度相机 RealSense D435i 的 ORB SLAM 2
  9. 自然》子刊同期刊发两篇重磅论文:月球上的水很多-1
  10. 单片机执行指令过程详解