【MindX SDK插件样例】 如何对经过mx_imagecrop插件裁剪后的图片进行可视化?

举报
蒲公英 发表于 2021/05/24 21:14:03 2021/05/24
【摘要】 0 前言       本帖的任务是通过举例说明,展示如何对经过mx_imagecrop裁剪的图像进行可视化。1.pipeline流程如下:相应的pipeline文件可以从帖子的案例3获取:【零基础入门SDK】小白带你配置MindX SDK中的pipeline-云社区-华为云 (huaweicloud.com2. 输入的测试图片如下:裁剪前的图片。3.配置好pipeline后,执行main函数...

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编码并导出到本地,再通过pythonjson图片进行base64解码。


文章中如果有疏漏,请在评论区留言,如果你在执行上述操作中有遇到报错无法解决,也可以将你的报错分享一下

-------------------------------------------------------------------------------------------------------------前路风很大,我们一起前行!



【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。