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

大纲

在《使用numpy处理图片------灰阶影像》一文中,我们将彩色图片转换成灰阶图片。本文将在这个基础上将灰阶图片转换成二值图像。

二值图像就是只有黑白两种颜色的图像。像素最终显示黑还是白,需要有一个判断标准。如果图片太白了,或者太黑了,会让图片丢失很多信息。于是我们需要找到一个平衡。

载入图像

python 复制代码
import numpy as np
import PIL.Image as Image

img = Image.open('lena.png')
data = np.array(img)

灰阶处理

python 复制代码
luminosityGrey = np.dot(data[...,:3], [0.2989, 0.5870, 0.1140]).astype(np.uint8)

二值处理

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

python 复制代码
sorted=np.sort(luminosityGrey.reshape(-1))

找到位于中位的数值

python 复制代码
mid = sorted[sorted.shape[0] // 2]

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

python 复制代码
binary = luminosityGrey > mid
binaryImg = Image.fromarray(binary.astype(np.uint8) * 255)
binaryImg.save('binary.png')
相关推荐
程序媛一枚~1 小时前
✨✨✨使用Python,OpenCV及图片拼接生成❤️LOVE❤️字样图,每张小图加随机颜色边框,大图加随机大小随机颜色边框
图像处理·python·opencv·numpy·图像拼接
阿拉丁的梦17 小时前
Blender的AI模型delaunay三角化拓扑
numpy
cnnews1 天前
在AWS Lambda上部署 tokenizers
python·云计算·numpy·aws·lambda·onnxruntime·tokenizers
清水白石00822 天前
NumPy 向量化实战指南:从原理到实践的性能革命
python·numpy
Web极客码23 天前
CentOS 7 删除文件却不释放空间?从 inode、文件描述符到 VFS 的底层原理解析
python·centos·numpy
sheyuDemo25 天前
关于深度学习的d2l库的安装
人工智能·python·深度学习·机器学习·numpy
deepxuan1 个月前
Day2--python三大库-numpy
开发语言·python·numpy
Flying pigs~~1 个月前
数据分析三剑客之Pandas
大数据·数据库·人工智能·数据分析·numpy·pandas
Quintus五等升1 个月前
深度学习自用笔记
人工智能·笔记·深度学习·学习·机器学习·bert·numpy
咚咚王者1 个月前
人工智能之视觉领域 计算机视觉 第三章 NumPy 与图像矩阵
人工智能·计算机视觉·numpy