如何将MNIST数据集的Numpy灰度图像转换为黑白二值图像?
如何将MNIST数据集的Numpy灰度图像转换为黑白二值图像?
当然有简单的方法啦!在NumPy里处理这种阈值二值化操作非常方便,我给你分享两种常用且高效的实现方式:
布尔索引转换法
利用NumPy的数组比较特性直接生成布尔数组,再转换为整数类型就能得到0和1的二值图像:import numpy as np # 假设你的MNIST图像数组为images,形状可以是单张图的(28,28)或批量的(样本数,28,28) binary_images = (images > 128).astype(np.int32)原理很简单:
images > 128会生成一个由True/False组成的布尔数组,其中大于128的像素为True,其余为False;astype(np.int32)会把True转为1,False转为0,刚好符合你的需求。np.where条件赋值法
如果你想要更直观的条件声明,可以用np.where函数,直接指定满足/不满足阈值时的取值:binary_images = np.where(images > 128, 1, 0)这个函数的逻辑是:第一个参数是判断条件,满足条件的位置取第二个参数的值(1),不满足的位置取第三个参数的值(0),一步就能生成目标二值数组。
这两种方法都支持批量处理整个MNIST数据集的多维数组,不需要循环遍历每个样本,效率拉满~
备注:内容来源于stack exchange,提问作者Noë Mastrorillo
相关产品推荐
相关产品推荐

