使用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')
相关推荐
摘取一颗天上星️4 天前
机器学习四剑客:Numpy、Pandas、PIL、Matplotlib 完全指南
机器学习·numpy·pandas
Ai财富密码4 天前
【Python教程】CentOS系统下Miniconda3安装与Python项目后台运行全攻略
开发语言·python·numpy
仟濹6 天前
「pandas 与 numpy」数据分析与处理全流程【数据分析全栈攻略:爬虫+处理+可视化+报告】
大数据·python·数据分析·numpy·pandas
心动啊1216 天前
Numpy7——数学2(矩阵基础(矩阵的逆和行列式),线性方程基础)
线性代数·矩阵·numpy
chenchenyyrr8 天前
【数据分析】之【Numpy】学习知识梳理
numpy
sduwcgg11 天前
python的numpy的MKL加速
开发语言·python·numpy
坚持就完事了12 天前
大二下期末
python·numpy·pandas
元直数字电路验证13 天前
Python数据分析及可视化中常用的6个库及函数(一)
python·numpy
猫头虎14 天前
零基础安装 Python 教程:从下载到环境配置一步到位(支持 VSCode 和 PyCharm)与常用操作系统操作指南
vscode·python·pycharm·beautifulsoup·numpy·pyqt·pip
心动啊12114 天前
Numpy——结构化数组和Numpy文件
numpy