我已经做了一些谷歌搜索,并且找不到任何可行的解决方案来解决我的问题。我正在尝试编写一个程序,它将采用黑白图像并存储在数组中,无论像素是黑色还是白色。
我已经能够打开图像并读取它的宽度和高度,但我完全不知道如何检测像素是黑色还是白色,然后将其存储在一个数组中供以后使用。
我一直在使用以下代码,任何帮助都会很棒。理想情况下,我想读取像素是否为白色并将其存储为数组映射中的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))
答案 0 :(得分:0)
如果图像不是灰度图像,请将图像转换为黑白图像,通常按像素=(R + G + B)/ 3或使用skimage.io的imread函数as_grey = True
图像中的每个像素现在都具有完全黑色和完全白色之间的值。您可以手动设置阈值,并使用numpy.where将值高于此值的所有像素分类为“白色”,或者您可以根据实际需要使用内置thresholding filters的skimage。