如果图像像素是黑色或白色,Python会读取

时间:2017-11-07 01:46:40

标签: python numpy

我已经做了一些谷歌搜索,并且找不到任何可行的解决方案来解决我的问题。我正在尝试编写一个程序,它将采用黑白图像并存储在数组中,无论像素是黑色还是白色。

我已经能够打开图像并读取它的宽度和高度,但我完全不知道如何检测像素是黑色还是白色,然后将其存储在一个数组中供以后使用。

我一直在使用以下代码,任何帮助都会很棒。理想情况下,我想读取像素是否为白色并将其存储为数组映射中的1。

from PIL import Image
import numpy as np
from scipy import misc
from pandas import *

##Opens the Image
im_file = Image.open('mazes/15x15.png')


##Reads the image pixel information
arr = np.array(im_file)

##Sets the width, height and maze size variables
width = im_file.size[0]
height = im_file.size[1]
size = width * height

##Defines the mapping array
map = np.zeros([width, height], dtype=np.int)

##Prints maze information for debugging
print ('Maze width:', width)
print ('Maze height:', height)
print ('Maze size:', size, '\n')

##Prints mapping array for debugging
print (DataFrame(map))

1 个答案:

答案 0 :(得分:0)

如果图像不是灰度图像,请将图像转换为黑白图像,通常按像素=(R + G + B)/ 3或使用skimage.io的imread函数as_grey = True

图像中的每个像素现在都具有完全黑色和完全白色之间的值。您可以手动设置阈值,并使用numpy.where将值高于此值的所有像素分类为“白色”,或者您可以根据实际需要使用内置thresholding filters的skimage。