如何根据验证跳过文件并在python中继续循环

时间:2018-03-20 03:55:41

标签: python-3.x

我编写了python程序来读取某个目录中的所有图像文件,并对每个图像进行了一些计算,如下所示。

def predict_data():
predict_data[]
for img in tqdm(os.listdir(PREDICT_DIR)):
    path = os.path.join(PREDICT_DIR,img)
    im_gray = cv2.imread(path,cv2.IMREAD_GRAYSCALE)
    im_gray_size = cv2.resize(im_gray, (IMG_W_SIZE,IMG_H_SIZE))
    (thresh, im_bw) = cv2.threshold(im_gray_size, 128, 255, cv2.THRESH_BINARY | cv2.THRESH_OTSU)
    fm =cv.Laplacian(im_gray_size, cv2.CV_64F).var()
    findQualityImage(thresh,fm)
    im_bw = cv2.threshold(im_gray_size, thresh, 255, cv2.THRESH_BINARY)[1]
    predict_data.append([np.array(im_bw)])
return predict_data

在循环内部我添加了验证部分,它被称为findQualityImage(thresh,fm)。在那里我检查了一些条件并返回一些消息如下。

def findQualityImage(thresh,fm):
if thresh > fm : print('The input image in good quality')
else : sys.exit('The quality of the image not satisfy minimal requirement')

一旦我们发现校正后的图像程序将从该点退出。但我想跳过那种图像并继续其余的过程。我怎么能实现这个目标?请帮我。谢谢。

1 个答案:

答案 0 :(得分:1)

您需要从findQualityImage函数返回一个值,然后您可以在循环中检查是否为true。

类似的东西:

if findQualityImage(thresh,fm):
    break

break导致python退出循环并直接进入代码行。

https://docs.python.org/2/tutorial/controlflow.html#break-and-continue-statements-and-else-clauses-on-loops