Пример #1
0
img_matrix = []
# 标题矩阵
title_matrix = []

# 对每一张图片进行处理
for path in img_path:
    img_list = []
    title_list = []

    img = cv2.imread(path)
    img_list.append(img)
    filename = filecm.short_name(path)
    title_list.append('原图-%s' % filename)

    # 灰度转换
    gray = opencvcm.get_gray(img, tmp_path, filename, img_list, title_list)
    # 平滑转
    blur = opencvcm.get_blur(gray, True, (3, 3), 5, tmp_path, filename, img_list, title_list)
    # 边缘检测
    sobel = opencvcm.get_sobel(blur, 1, 0, 3, cv2.CV_8U, tmp_path, filename, img_list, title_list)
    # 二值化
    thresh = opencvcm.get_thresh(sobel, 170, cv2.THRESH_BINARY, tmp_path, filename, img_list, title_list)
    # 边界
    kernel_dilate = cv2.getStructuringElement(cv2.MORPH_RECT, (9, 7))
    kernel_erode = cv2.getStructuringElement(cv2.MORPH_RECT, (9, 1))
    edges = opencvcm.get_edges(thresh, 'DED-DE', kernel_dilate, kernel_erode, tmp_path, filename, img_list,
                               title_list)

    # 查找车牌区域,指定最小面积,宽高比范围
    rois = opencvcm.find_rois(edges, min_area=2000, min_wh_ratio=2, max_wh_ratio=5)
    img_plate = None
Пример #2
0
filecm.makedir(tmp_path)

# KNN算法对象(初始化并训练好)
knn = cvknncm.get_hand_digits_knn()
# 载入测试图片
img_test = cv2.imread('./images/cv_img_number2_test.jpg')

# 图片列表
img_list = []
# 标题列表
title_list = []

img_list.append(img_test)
title_list.append('原图+结果')

gray = opencvcm.get_gray(img_test, tmp_path, "", img_list, title_list)
# 读取图片边界
edges = opencvcm.get_edges(gray, 'D-E', None, None, tmp_path, "", img_list,
                           title_list)
# 阈值处理
thresh = opencvcm.get_thresh(edges, 21, cv2.THRESH_BINARY, tmp_path, "",
                             img_list, title_list)
# 查找兴趣点区域
rois = opencvcm.find_rois(thresh)
digits = []
id = 0
for roi in rois:
    (x, y, w, h) = roi
    id += 1
    # 查询兴趣区域对应的数字
    digit, th = cvknncm.find_hand_digit_knn(knn,