i有一个文件夹" images-2",该文件夹超过100个子文件夹,这些子文件夹由每个文件夹一个图像组成。def main()
打开每个图像,def run(img)
获取图像并处理它,但是现在我无法将该图像保存在其子文件夹中。
e.g def main
c:/images-2/1/1.png(1是文件夹名称,所以我在图像中有100个文件夹
如果条件将在文件夹中保存处理的图像(Zero.png)
它如何适用于100个文件夹,每个文件夹1张?
def run(img):
data = img.load()
width, height = img.size
output_img = Image.new("RGB", (100, 100))
Zero=np.zeros(shape=(100, 100),dtype=np.uint8)
for (x, y) in labels:
component = uf.find(labels[(x, y)])
labels[(x, y)] = component
path='C:/Python27/cclabel/Images-2/'
if labels[(x, y)]==0:
Zero[y][x]=int(255)
Zeroth = Image.fromarray(Zero)
for root, dirs in os.walk(path):
print root
print dirs
Zeroth.save(path+'Zero'+'.png','png')
def main():
# Open the image
path="C:/Python27/cclabel/Images-2/"
for root, dirs, files in os.walk(path):
for file_ in files:
img = Image.open(os.path.join(root, file_))
img = img.point(lambda p: p > 190 and 255)
img = img.convert('1')
(labels, output_img) = run(img)
if __name__ == "__main__": main()
您两次调用os.walk
。那是你的问题。这就是我在评论中的意思:
def run(dirname, img):
data = img.load()
width, height = img.size
output_img = Image.new("RGB", (100, 100))
Zero=np.zeros(shape=(100, 100), dtype=np.uint8)
for (x, y) in labels:
component = uf.find(labels[(x, y)])
labels[(x, y)] = component
path = 'C:/Python27/cclabel/Images-2/'
if labels[(x, y)] == 0:
Zero[y][x] = 255
Zeroth = Image.fromarray(Zero)
Zeroth.save(os.path.join(dirname, 'Zero.png'), 'png')
def main():
path = "C:/Python27/cclabel/Images-2/"
for root, dirs, files in os.walk(path):
for file_ in files:
img = Image.open(os.path.join(root, file_))
img = img.point(lambda p: p > 190 and 255)
img = img.convert('1')
(labels, output_img) = run(root, img)
if __name__ == "__main__":
main()