【MindX SDK插件样例】 如何对经过mx_imagecrop插件裁剪后的图片进行可视化?
0 前言
本帖的任务是通过举例说明,展示如何对经过mx_imagecrop裁剪的图像进行可视化。
1.pipeline流程如下:
相应的pipeline文件可以从帖子的案例3获取:【零基础入门SDK】小白带你配置MindX SDK中的pipeline-云社区-华为云 (huaweicloud.com
2. 输入的测试图片如下:裁剪前的图片。
3.配置好pipeline后,执行main函数。获得6个json文件
4.将文件导出至windows本地,并将名字改成符合json格式。
5. 在python中执行如下命令。
from sys import argv
import base64
import json
with open(r'C:\xxx\imageresize0-output.json', "r") as json_file: #填写打开路径 xxx为存放目录
# 以字典方式读取json文件
raw_data = json.load(json_file)
# 提取图片信息
data_str = raw_data['buffer']['bufferData']
# 将图片进行base64转码为二进制文件
image_data = base64.b64decode(data_str)
# 将图片保存为jpg格式
with open(r'C:\xxx\imag0.jpg', 'wb') as jpg_file: #填写保存路径 xxx为存放目录
jpg_file.write(image_data)
6最终结果如下:裁剪后的图片
7.解释说明:
A. 查看json保存数据:
raw_data中的“bufferData”保存的是经过base64编码后的图片数据。
B. 查看经过base64解码后的图片数据
经过base64转码后,图片变成了二进制格式。然后就可以保存为jpg格式查看了。
说明:图片经过解码(decoder)操作后,图片格式为yuv,存储在dataBuff数据结构的buff中。经过图片裁剪(crop)后获得的图片存储在dataBuff数据结构的metadata中。我们需要导出metadata中的图片数据,需要先经过编码(encode),将yuv格式的图片转换成jpg格式,再经过mxpi_dumpdata操作将裁剪后的图进行base64编码并导出到本地,再通过python将json图片进行base64解码。
文章中如果有疏漏,请在评论区留言,如果你在执行上述操作中有遇到报错无法解决,也可以将你的报错分享一下
-------------------------------------------------------------------------------------------------------------前路风很大,我们一起前行!
- 点赞
- 收藏
- 关注作者
评论(0)