项目场景:

今天我们开始最基础的图像处理,将一张图片进行灰度化处理。我们将使用OpenCV来进行图像的处理


基础知识

图片主要包含以下内容:
1.像素,也就是我们通常说的RGB模型,红、绿、蓝组成。
RGB颜色模型是三维直角坐标系下的一个单位正方体!

也就是说,图片中的某个像素点的取值为(x,y,z)。

2.分辨率,也就是图像的解析度,单位英寸内的像素点数
3.灰度,表示图像像素的明暗程度的数值,也就是黑白图像中点的颜色深度。范围一般为0-255。白色为255,黑色为0.

图片灰度化

我们要做的是将图片灰度化,那么首先就要搞清楚,什么是灰度化?
所谓灰度,就是图像没有色彩。举个例子,原本的彩色图片是有RGB三种颜色组成的(也就是每个像素点由三个值),现在给图像灰度化,每个像素点只有一个值(0-255)表示颜色的深度。
大家也可以这样理解:彩色图片,颜色是在一个三维坐标下(也就是RGB模型)确定的,而灰度图的坐标是在一维坐标下确定的,取值范围为0-255.

图片灰度化的方法(也就是颜色由三维表示转一维表示的方法)

灰度化:

二值化:我们在上诉的灰度化中,颜色以经由三维变成了一维的(取值范围0-255),当这个取值只能为0或者1的时候,便是图像二值化。(当然,这两个值不仅限于0和1,也可以是其他的两个值)

代码展示

import numpy as np
import matplotlib.pyplot as plt
import cv2# 灰度化
img = cv2.imread("lenna.png")
h, w = img.shape[:2]  # 获取图片的high和wide
img_gray = np.zeros([h, w], img.dtype)  # 创建一张和当前图片大小一样的单通道图片
for i in range(h):for j in range(w):m = img[i, j]  # 取出当前high和wide中的BGR坐标img_gray[i, j] = int(m[0] * 0.11 + m[1] * 0.59 + m[2] * 0.3)  # 将BGR坐标转化为gray坐标并赋值给新图像
print(img_gray[2,1])
# 二值化
img_binary = np.where(img_gray/255 >= 0.5, 1, 0)# 画图
img = plt.imread("lenna.png")
plt.subplot(221)
plt.imshow(img)
plt.title('Color map')plt.subplot(222)
plt.imshow(img_gray, cmap='gray')
plt.title('gray')plt.subplot(223)
plt.imshow(img_binary, cmap='gray')
plt.title('img_binary')
plt.savefig('mytestplt.png')
plt.show()

效果展示:

写在最后:

当然,我们在使用第三方库的时候,这种简单的事情根本不需要我们来做,直接调用第三方库的接口即可,哈哈!

# 灰度化
#img_gray = rgb2gray(img) # 此函数做灰度化,返回的数值范围为0-1.所以在做二值化的时候无需除以255
img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 因为imread读进来的是BGR数据,所以这里做BGR转GRAY# 二值化
img_binary = np.where(img_gray/255 >= 0.5, 1, 0)

图像基本处理(灰度化)相关推荐

  1. 2种图像增强方法:图像点运算和图像灰度化处理

    摘要:本文主要讲解图像点运算的灰度化处理,详细介绍常用的灰度化处理方法,并分享了图像颜色空间相互转换,以及三种灰度转换算法的实现. 本文分享自华为云社区<[Python从零到壹] 四十三.图像增 ...

  2. matlab实现彩色图像灰度化的三种方法

    一.概要 将彩色图像转换为灰度图像的过程称为灰度化处理. 对于图像而言,灰度化处理就是使彩色的R,G,B分量值相等的过程. 灰度化处理的方法主要有如下3种: 最大值法:使R,G,B的值等于3值中最大的 ...

  3. 3 - 图片灰度化与转换为八位灰度图片

    参考资料:彩色图像灰度化 图片灰度化与转换为八位灰度图片 1.灰度化公式 2.24 位真彩图灰度化 3.24 位真彩图转换成 8 位灰度图片 1.灰度化公式 彩色图像灰度化的算法公式一般有如下两种:明 ...

  4. html5图片灰度显示,HTML5 组件Canvas实现图像灰度化

    HTML5发布已经有很长一段时间了,一直以来从来没有仔细的看过,过年刚来随便看看 发现HTML5中的Canvas组件功能是如此的强大,不怪很多牛人预言Flash已死,死不死 不是我要关心的,我关心的C ...

  5. opencv图像灰化_opencv读入图像、灰度化、归一化、向量化

    平台:win7+opencv2.4.4+vs2008 功能:实现对图像的读入.灰度化.归一化和向量化. 代码: //这里的头文件都是vs2008的,与vc6.0有多不同 #include #inclu ...

  6. Python-OpenCV 处理图像(七):图像灰度化处理

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

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

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

  8. [Python图像处理] 三十一.图像点运算处理两万字详细总结(灰度化处理、阈值化处理)

    该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...

  9. [Python图像处理] 十四.基于OpenCV和像素处理的图像灰度化处理

    该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...

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

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

最新文章

  1. struts2结果类型
  2. zabbix的日常监控-自动发现端口并监测(服务器开启的所有端口或监控指定端口)(十三)...
  3. 汽车电子嵌入式技术篇(二) -autosar中的嵌入式系统函数的调用
  4. 深度学习(五十七)tensorflow andorid yolo物体检测测试
  5. 高并发消息队列常用通知机制
  6. mysql查询报错2014_MySQL错误2014的原因其他未缓冲的查询处于活动状态时无法执行查询...
  7. OMP算法的物理意义表示
  8. unity生涯的开始——太空飞船小游戏制作
  9. s3cmd安装配置及基础命令
  10. 商业图表案例9.2-麦吉尔大学博士生录取的严格把控
  11. 中国货币政策的动态有效性研究--基于 TVP-SV-FAVAR 模型的实证分析
  12. 物理机与虚拟机互传文件
  13. 从键盘输入一个不多于3位的正整数,要求:求出它是几位数;分别打印出每一位数字;按逆序打印出各位数字
  14. [笔记]|[FPGA]|[寄存器]|[模拟信号数字信号]《FPGA学习之道》学习笔记(1)
  15. 在Ubuntu 16.04中安装FBReader阅读器,阅读mobi文件
  16. MathType公式编辑文本复制粘贴选项
  17. 米思齐学习例程(八):声控灯
  18. java 生成二维码和去除白边的方法
  19. 如何完整备份苹果/Mac?两种方式介绍给大家
  20. 自我绊倒的面试——顾建荣(摘自《微软360度》

热门文章

  1. SpringBoot 集成 TkMybatis
  2. java带jar包运行_java带jar包的命令行运行
  3. Leetcode题解助手
  4. Hash冲突以及如何解决Hash冲突
  5. 大数据处理流程的主要环节
  6. unity 素材分享
  7. 未来机器人背景的AI人工智能PPT模板
  8. 使用Flask在Raspberry Pi上构建物联网服务器
  9. 浅谈大数据广告下个人隐私保护,开发者视角的广告原理
  10. 001.UG_NX概述