我要处理的文件夹中有大约200到400张图片。我正在尝试使用python编写一种脚本来处理这些图像。图像输出正在改变,但有一些逻辑错误,我知道但不知道修改。这是我到目前为止的两个文件
test2和resize是我创建的2个.py文件。 test2.py将调用resize.py它将调整目录
中的图像test2.py
import glob
import cv2
from resize import process
for image_file in glob.iglob('/home/winowa/Desktop/Intern101/fisherFace/test/*.jpg'):
process(image_file)
resize.py
import cv2
def process(filename):
image = cv2.imread(filename)
print image.shape
r = 100.0 / image.shape[1]
dim = (100, int(image.shape[0] *r))
imageresized = cv2.resize(image,(300,300),dim,interpolation = cv2.INTER_AREA)
for i in range(19):
cv2.imwrite( 'imageresized_{}.jpg'.format(i) ,imageresized )
print 'imageresized_{}.jpg'.format(i)
我知道在进入resize.py之后它将循环19次,然后进入第二轮test2.py。我正在尝试更正程序以继续下一个图像,并将图像名称输出为imageresized1.jpg,imageresized2.jpg等。现在图像是正确的名称,但错误的图像。由于for循环,只有一个图像被撬开。范围(19)是我的文件夹中的19张图像
答案 0 :(得分:0)
怎么样?
<强> test2.py 强>
import glob
import cv2
from resize import process
for (i,image_file) in enumerate(glob.iglob('/home/winowa/Desktop/Intern101/fisherFace/test/*.jpg')):
process(image_file, i)
<强> resize.py 强>
import cv2
def process(filename, key):
image = cv2.imread(filename)
print image.shape
r = 100.0 / image.shape[1]
dim = (100, int(image.shape[0] *r))
imageresized = cv2.resize(image,(300,300),dim,interpolation = cv2.INTER_AREA)
cv2.imwrite( 'imageresized_{}.jpg'.format(key) ,imageresized )
print 'imageresized_{}.jpg'.format(key)
这假设您只想为每次调用process
写一个文件,并且您的&#34; 19文件&#34;将是glob
匹配的文件。