2016-06-14 10 views
1

私はPythonには新しく、私はここでループしたものをどのようにループに変換するかを考え出すのに苦労しています。あなたがここで見ることができるように、私は3つの異なる画像(mask_0001.pngからmask_0003.pngまで)への基本的な画像スケーリングを行っていますが、後で行くために100以上のものがあるので、ループI推測。pythonを使用したループでの画像スケーリングOpenCV

import cv2 
import numpy as np 

img = cv2.imread("C://Users//user//Desktop//research//images//Mask//set1//set1_mask_0001.png") 
res = cv2.resize(img,None,fx=0.5, fy=0.5, interpolation = cv2.INTER_CUBIC) 
cv2.imwrite('0.25_mask_set1_0001.png', res) 


img = cv2.imread("C://Users//user//Desktop//research//images//Mask//set1//set1_mask_0002.png") 
res = cv2.resize(img,None,fx=0.5, fy=0.5, interpolation = cv2.INTER_CUBIC) 
cv2.imwrite('0.25_mask_set1_0002.png', res) 


img = cv2.imread("C://Users//user//Desktop//research//images//Mask//set1//set1_mask_0003.png") 
res = cv2.resize(img,None,fx=0.5, fy=0.5, interpolation = cv2.INTER_CUBIC) 
cv2.imwrite('0.25_mask_set1_0003.png', res) 

感謝を:

(0150.pngする0004.pngから)ここで私はちょうど書いたコードです!

答えて

0

これは、iにマスクを設定して、iを1から150までループします。

のPython 2

for i in range(1,151): 
    img = cv2.imread("C://Users//user//Desktop//research//images//Mask//set1//set1_mask_" + str(i).zfill(4) +".png") 
    res = cv2.resize(img,None,fx=0.5, fy=0.5, interpolation = cv2.INTER_CUBIC) 
    cv2.imwrite('0.25_mask_set1_' + str(i).zfill(4) + '.png', res) 

Pythonの3

代わりstr(i).zfill(4)を使用しての、それはで動作することを確認するために、特にcv2.imwriteiの私の使用して、あなたが行動を確認する必要がありformat(i, '04d')

を試してみてくださいあなたの問題

+1

ありがとう!しかし、私は質問があります:あなたのコードによれば、10番目のイメージは00010.pngになりますが、正しいパスは0010でなければなりません。まだそれがうまくいくかどうかはわかりません。 –

+0

優れた点は、zfillを使用した修正されたソリューションを参照してください。 – nbryans

+0

ねえ、それは完璧に働く男! –

関連する問題