使用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')
相关推荐
做怪小疯子2 天前
华为笔试0429
python·numpy
Ulyanov3 天前
《现代 Python 桌面应用架构实战:PySide6 + QML 从入门到工程化》:动态数据仪表盘与 NumPy 可视化 —— 从标量到向量的数据驱动进化
开发语言·python·qt·架构·numpy
一晌小贪欢4 天前
第3节:从表格到矩阵——NumPy 高级索引与维度变换实战
线性代数·矩阵·numpy
XX風5 天前
三维点云处理环境相关-ubuntu安装numpy、open3d
linux·ubuntu·numpy
方安乐5 天前
python之向量、向量和、向量点积
开发语言·python·numpy
隔壁大炮6 天前
Day07-RNN介绍
人工智能·pytorch·rnn·深度学习·神经网络·算法·numpy
隔壁大炮7 天前
Day06-08.CNN概述介绍
人工智能·pytorch·深度学习·算法·计算机视觉·cnn·numpy
光之后裔7 天前
Numpy以及Pytorch中多维数组的维度数与维度值以及轴axis理解
pytorch·python·numpy
隔壁大炮8 天前
Day02-13.张量的拼接操作
人工智能·pytorch·深度学习·神经网络·numpy
爱喝热水的呀哈喽9 天前
5步创建一个有不同numpy scipy版本的python环境
python·numpy·scipy