我编写了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')
一旦我们发现校正后的图像程序将从该点退出。但我想跳过那种图像并继续其余的过程。我怎么能实现这个目标?请帮我。谢谢。
答案 0 :(得分:1)
您需要从findQualityImage
函数返回一个值,然后您可以在循环中检查是否为true。
类似的东西:
if findQualityImage(thresh,fm):
break
break导致python退出循环并直接进入代码行。