我目前从cv2 resize收到错误,表示文件中没有任何内容。它在windows上运行良好,但是我很难找到需要做的事情(除了路径名的改变)以便在linux上工作。
path1 ='C:/Users/L/Software/Data/channels/ch3'
listing = os.listdir(path1)
ch3_matrix = array([array(cv2.resize(cv2.imread(path1 + '\\' + im2,0),(55,55))).flatten()
for im2 in listing])
答案 0 :(得分:1)
问题是你要建立的最终路径:
path1 + '\\' + im2
其中path1
是您的基本目录,im2
是图像文件名。这样做(使用字符串连接)可能会非常快速地导致问题,并且通常不鼓励。
我建议使用os.path.join
或更新的pathlib
模块,这两个模块都独立于平台:
import os
BASE_PATH = 'C:/Users/L/Software/Data/channels/ch3'
images = os.listdir(BASE_PATH)
ch3_matrix = array([
array(cv2.resize(cv2.imread(os.path.join(BASE_PATH, image), 0), (55, 55))).flatten()
for image in images
])
或
import pathlib
BASE_PATH = pathlib.Path('C:/Users/L/Software/Data/channels/ch3')
images = os.listdir(BASE_PATH)
ch3_matrix = array([
array(cv2.resize(cv2.imread(str(BASE_PATH / image), 0), (55, 55))).flatten()
for image in images
])
要使您的代码在Linux上运行,您只需更改BASE_PATH
。