私は100を超えるサブフォルダを持つ "Images-2"というフォルダを持っています。これらのサブフォルダはフォルダごとに1つの画像で構成されています。 def main()
は各画像を開き、def run(img)
は画像を取り込んで処理しますが、その画像をそのサブフォルダに保存することはできません。反復フォルダを開き、画像を1つずつ処理して保存します
例えばdef main
C:/Images-2/1/1.png(1フォルダ名ですので、私は画像-2で100個のフォルダを持っている)
条件場合には、(ゼロを処理した画像を保存します。 png)画像-2/1/
どのように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()
ここで、 'run'の変数' labels'はどこに定義されていますか?私はあなたが '実行'に 'root'を渡し、' run'から 'os.walk'を削除し、' Zeroth.save(os.path.join(root、 'Zero.png')、 'png') 'を実行して、画像をロードしたのと同じディレクトリに「ゼロ」画像を保存します。 –
thats問題は正しいパスに保存できません。最後のフォルダイメージを処理してすべてのフォルダに保存しています –