我正在使用以下功能将.pgm图像转换为数组。但是现在我得到了所有格式的图像,例如.jpg / png等。现在我想将所有内容都转换为.pgm(没有节省),需要转换为数组。我正在使用下面的函数转换为数组
def image_array(pgm):
pic = image.load_img(pgm, target_size=(224, 224))
x = image.img_to_array(pic)
x = np.expand_dims(x, axis=0)
x = preprocess_input(x)
npfeatures = np.array(x)
return npfeatures
我尝试了下面的方法,但是无法将这些东西集成到上面的函数中。
image = cv2.imread('C:/Users/N/Desktop/Test.jpg')
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
我使用的进口商品
答案 0 :(得分:0)
这应该与您的image_array
函数获得相同的结果:
def image_array(filename):
x = cv2.imread(filename)
x = cv2.resize(x, (224, 224))
x = np.expand_dims(x, axis=0)
x = preprocess_input(x)
npfeatures = np.array(x)
return npfeatures
现在,如果您想要一个单通道图像,即(224,224)而不是(224,224,3),只需使用cv2.imread(filename, cv2.IMREAD_GRAYSCALE)
。
如果您希望它是(224,224,3),但显示为灰色,即所有三个颜色分量都相等,请使用
x = cv2.imread(filename, cv2.IMREAD_GRAYSCALE)
x = cv2.resize(x, (224, 224))
x = np.tile(np.expand_dims(x, 2), 3)