使用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 天前
深入理解 NumPy:Python 科学计算的基石
开发语言·python·numpy
留思难4 天前
Pyhton生活手册-NumPy数据类型:从快递单到智能家居的数据变形术
numpy
留思难8 天前
Python生活手册-Numpy数组索引:从快递柜到咖啡店的数字化生活指南
python·numpy
Code_流苏9 天前
《Python星球日记》 第36天:线性代数基础
线性代数·numpy·数据科学·向量空间·矩阵运算
留思难9 天前
Python生活手册-NumPy数组创建:从快递分拣到智能家居的数据容器
python·numpy
xiaohanbao099 天前
day16 numpy和shap深入理解
python·学习·机器学习·信息可视化·numpy·pandas
engchina11 天前
如何在Dify沙盒中安装运行pandas、numpy
numpy·pandas·dify·代码节点
Alonelies14 天前
第二章-科学计算库NumPy
numpy
晨曦54321016 天前
Numpy数组与矩阵——python学习
python·矩阵·numpy
guest_88119 天前
用 Python 打造打篮球字符动画!控制台彩色炫酷输出,抖音搞怪视频灵感还原
开发语言·python·numpy·pillow