前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用numpy处理图片——二值图像

使用numpy处理图片——二值图像

作者头像
方亮
发布2024-01-15 08:20:39
1290
发布2024-01-15 08:20:39
举报
文章被收录于专栏:方亮方亮

在《使用numpy处理图片——灰阶影像》一文中,我们将彩色图片转换成灰阶图片。本文将在这个基础上将灰阶图片转换成二值图像。 二值图像就是只有黑白两种颜色的图像。像素最终显示黑还是白,需要有一个判断标准。如果图片太白了,或者太黑了,会让图片丢失很多信息。于是我们需要找到一个平衡。

载入图像

代码语言:javascript
复制
import numpy as np
import PIL.Image as Image

img = Image.open('lena.png')
data = np.array(img)
在这里插入图片描述
在这里插入图片描述

灰阶处理

代码语言:javascript
复制
luminosityGrey = np.dot(data[...,:3], [0.2989, 0.5870, 0.1140]).astype(np.uint8)
在这里插入图片描述
在这里插入图片描述

二值处理

我们将灰阶处理后的数组打平成一维数组,然后排序。

代码语言:javascript
复制
sorted=np.sort(luminosityGrey.reshape(-1))

找到位于中位的数值

代码语言:javascript
复制
mid = sorted[sorted.shape[0] // 2]

然后以此为判断标准,大于它的显示白色,小于它的显示黑色。

代码语言:javascript
复制
binary = luminosityGrey > mid
binaryImg = Image.fromarray(binary.astype(np.uint8) * 255)
binaryImg.save('binary.png')
在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-01-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 载入图像
  • 灰阶处理
  • 二值处理
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档