PYNQ在PS端进行图片缩放

在完成PYNQ环境搭建后(zynq7035单板创建PYNQ镜像V2.6),本文介绍如何在PS端进行图片缩放。

导入图片

进入jupyter后,使用updload,将图片导入到\192.168.2.99\xilinx\jupyter_notebooks中。

PYNQ在PS端进行图片缩放

导入Bit文件

将工程文件夹impl_1中的.bit文件,改名为system.bit。将sources_1\bd\system\hw_handoff中的.hwh和.tcl文件,改名为system.hwh和system.tcl。下载bit文件时需要用到这三个文件,PS端运行程序暂时不用。

PYNQ在PS端进行图片缩放

进行图片缩放

在jupyter中新建ipynb文件,点击New-Python3。

PYNQ在PS端进行图片缩放

在jupyter中进行图片缩放流程如下:

  • 导入库
  • 读取图片并显示
  • 缩小图片并显示
  • 计算缩小图片所用时间

导入库文件

from PIL import Image
import numpy as np
from IPython.display import display
import cv2

进行图片格式转换

src = cv2.imread('2.jpg')
print(src.shape)  //(288, 352, 3)
cv2.imwrite('2.png',src)  //将jpg转换成png

读取图片并显示

创建图片对象

image_path = "2.png"
original_image = Image.open(image_path)
original_image.load()
input_array = np.array(original_image)

显示

input_image = Image.fromarray(input_array)
display(input_image)

原始图像大小

old_width, old_height = original_image.size
print("Image size: {}x{} pixels.".format(old_width, old_height)) //Image size: 352x288 pixels.

缩小图片并显示

图片缩小后大小28x28

resized_image = original_image.resize((28, 28))

显示缩小后图片

output_array = np.array(resized_image)
result = Image.fromarray(output_array)
cv2.imwrite('s2.png',output_array) //将缩小后图片保存
display(result)

PYNQ在PS端进行图片缩放

检测缩小后图片尺寸

width, height = resized_image.size
print("Resized image size: {}x{} pixels.".format(width, height))   //Resized image size: 28x28 pixels.

计算缩小图片所用时间

%%timeit
resized_image = original_image.resize((new_width, new_height), Image.BILINEAR)

输出

100 loops, best of 3: 10.6 ms per loop

参考

https://github.com/Xilinx/PYNQ-HelloWorld

微信公众号:硬码农二毛哥

上一篇:2021-10-20


下一篇:GitHub中origin和upstream的区别