1.Code
[python] view plain copy
import os
import numpy as np
import sys
import cv2
import time
import random
def detect(imgPath, imgLabel):
# Read Image
frame = cv2.imread(imgPath)
if True:
# Subtraction from mean file
crop = cv2.resize(frame, (256, 256))
# Showing output
cv2.imshow("Gender Detection",crop)
cv2.waitKey(0)
def main(argv):
assert (len(argv) == 2)
original_txt = argv[1]
with open(original_txt) as f:
def_lines = f.readlines()
def_lines.pop(0)
full_list = []
for def_line in def_lines:
def_dic = {}
image_dir = def_line.split(' ')[0]
temp = def_line.split(' ')[1]
image_label = temp.split('\n')[0]
image_name = '/home/zhuxiuhong/dataset/age_gender/DATA/aligned/{0}'.format(image_dir)
def_dic['image_name'] = image_name
def_dic['image_label'] = image_label
full_list.append(def_dic)
images_num = len(full_list)
for ind in range(images_num):
image_name = full_list[ind]['image_name']
image_label = full_list[ind]['image_label']
detect(image_name, image_label)
if name == ‘main‘:
print(doc)
import sys
main(sys.argv)
2.Error
3.Solution
当cv2.imread()读入图像的路径不存在时,frame为None,再对其进行cv2.resize(),发生错误
[python] view plain copy
frame = cv2.imread(imgPath)
加入语句:
[python] view plain copy
if(frame == None):
return
修改后如下:
[python] view plain copy
import os
import numpy as np
import sys
import cv2
import time
import random
def detect(imgPath, imgLabel):
# Read Image
frame = cv2.imread(imgPath)
if(frame == None):
return
if True:
# Subtraction from mean file
crop = cv2.resize(frame, (256, 256))
# Showing output
cv2.imshow("Gender Detection",crop)
cv2.waitKey(0)
def main(argv):
assert (len(argv) == 2)
original_txt = argv[1]
with open(original_txt) as f:
def_lines = f.readlines()
def_lines.pop(0)
full_list = []
for def_line in def_lines:
def_dic = {}
image_dir = def_line.split(' ')[0]
temp = def_line.split(' ')[1]
image_label = temp.split('\n')[0]
image_name = '/home/zhuxiuhong/dataset/age_gender/DATA/aligned/{0}'.format(image_dir)
def_dic['image_name'] = image_name
def_dic['image_label'] = image_label
full_list.append(def_dic)
images_num = len(full_list)
for ind in range(images_num):
image_name = full_list[ind]['image_name']
image_label = full_list[ind]['image_label']
detect(image_name, image_label)
if name == ‘main‘:
print(doc)
import sys
main(sys.argv)
注意:码代码要把意外情况考虑全面