【阿里云天池】实战:街景符号识别(单张图片读取和JSON数据读取)

一、包
采用OpenCv读取图片信息。

import json
import numpy as np
import matplotlib.pyplot as plt
import cv2

二、对于读取到的JSON数据信息的处理

将输入的JSON信息用np读出top,height,left,width,label这几个信息。返回一个拥有所有信息的arr。
def parse_json(d):
    arr = np.array([
        d['top'], d['height'], d['left'],  d['width'], d['label']
    ])
    arr = arr.astype(int)
    return arr

三、执行过程
读取JSON数据,用OpenCv读取图片,将获得图片的JSON信息保存在arr里。

train_json = json.load(open('mchar_train.json'))

img = cv2.imread('mchar_train/mchar_train/000001.png')

arr = parse_json(train_json['000001.png'])

【阿里云天池】实战:街景符号识别(单张图片读取和JSON数据读取)_第1张图片
接下来进行可视化处理

plt.figure(figsize=(10, 10))
plt.subplot(1, arr.shape[1]+1, 1)
plt.imshow(img)
plt.xticks([]); plt.yticks([])
for idx in range(arr.shape[1]):
    plt.subplot(1, arr.shape[1]+1, idx+2)
    plt.imshow(img[arr[0, idx]:arr[0, idx]+arr[1, idx],arr[2, idx]:arr[2, idx]+arr[3, idx]])
    plt.title(arr[4, idx])
    plt.xticks([]); plt.yticks([])
plt.show()

【阿里云天池】实战:街景符号识别(单张图片读取和JSON数据读取)_第2张图片

你可能感兴趣的:(json,python,开发语言)