手把手教你:在RK3588人工智能实验箱上实现超高速图像缩放
2.1 实验目的
(1)了解图像缩放在图像处理中的应用。
(2)理解图像缩放实现的原理。
(3)掌握通过 OpenCV 库实现图像缩放的基本方法和步骤。
2.2 实验原理
OpenCV(Open source Computer Vision Library)是一个基于 Apache2.0 许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在 Linux、Windows、Android 和 Mac OS 操作系统上。它轻量级而且高效,由一系列 C 函数和少量 C++ 类构成,同时提供了 Python、Ruby、MATLAB 等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。
(1)不管是科学研究,还是商业应用,都可以利用它来作开发。
(2)所有 API 函数的源代码都是公开的,可以看到其内部实现的程序步骤。
(3)可以修改 OpenCV 的源代码,编译生成需要的特定 API 函数。

图 22
缩放是将图像的尺寸变小或变大的过程,即减少或增加原图像数据的像素个数。将分辨率(图片尺寸)为(w,h)的图像,缩放后其图像分辨率(图像尺寸)为(w’,h’),则水平方向的缩放系数为 Sx=w’/w,垂直方向的缩放系数为 Sy=h’/h。
设原始图像的某个像素点坐标为(x0,y0),缩放后的图像的像素点坐标为(x,y),则(x0,y0)和(x,y)的关系可以通过缩放系数进行转换。
在 OpenCV 中,可以使用 resize() 函数来实现图像的缩放。该函数接受源图像和目标图像的大小作为参数,通过指定目标图像的大小,可以实现图像的放大或缩小。
resize() 函数还可以接受插值方法作为参数,以控制图像缩放的质量和效果。常用的插值方法包括最近邻插值、双线性插值、立方插值等。
cv2.resize(InputArray src, OutputArray dst, Size, fx, fy, interpolation)
参数解释:

图 23

图 24
插值方法的原理如下:
(1)最近邻插值:直接取离目标像素点最近的源像素点的值作为目标像素点的值。这种方法简单快速,但缩放效果可能不够平滑。
(2)双线性插值:根据目标像素点周围的四个源像素点的值,通过线性插值计算得到目标像素点的值。这种方法可以得到较平滑的缩放效果,但计算量相对较大。
(3)立方插值:根据目标像素点周围的多个源像素点的值,通过三次多项式插值计算得到目标像素点的值。这种方法可以得到更平滑的缩放效果,但计算量更大,且可能引入一些额外的图像细节。
2.3 实验功能
本实验通过读取本地图片进行 1/2、1/4 尺寸缩放操作,其中 1/2 缩放直接调整尺寸实现,1/4缩放使用最近邻插值法缩放方法。
2.4 实验设备(本次体验已完成,无需再操作)
(1)硬件:人工智能实验箱。
(2)软件:Windows7 64bit以上系统。
2.5 实验步骤
2.5.1硬件连接(本次体验已完成,无需再操作)
(1)将实验箱千兆网口2通过网线连接至路由器。
(2)连接实验箱电源,按电源开关启动系统。
2.5.2查询实验箱网络 IP(本次体验已完成,无需再操作)
等待实验箱进入系统后,通过键盘快捷键 Ctrl + Alt + T 或者键盘触摸板右按键打开菜单,选择系统终端,在终端输入如下命令查询当前网络 IP。
Target# ifconfig

图 25
2.5.3拷贝文件(本次体验已完成,无需再操作)
打开电脑远程桌面功能,通过远程实验箱系统进行文件拷贝和操作。
在远程桌面页面输入实验箱网口IP,点击连接按钮,启动远程连接。

图 26
输入账号和密码:tronlong 进行系统登录

图 27

图 28

图 29
在电脑上使用鼠标复制本实验代码文件 image_scaling(代码所在目录:Demo/Image_Processing/image_scaling),然后在远程窗口中进入“主目录”文件夹,创建一个名字为 Demo 文件夹,使用鼠标粘贴功能即可把代码拷贝到 Demo 目录中,如下操作

图 30

图 31
使用的时候建议最大化远程窗口。
2.5.4运行程序
在 Demo 目录下,使用鼠标右键启动终端窗口,执行以下命令,启动开发环境:

图 32
Target# jupyter lab

图 33
实验现象:
拷贝终端打印的网址,启动实验箱系统左上角浏览器,在网页输入:http://rk3588:8888/lab,即可打开登录界面 (根据实际IP地址修改网页地址)。输入密码:tronlong,登录。

图 34
在 jupyter lab 左边项目栏可看到本实验代码文件夹。(本次体验代码存放目录:Demo/Image_Processing/image_scaling)

图 35
双击进入文件夹目录,再打开实验代码文件,可浏览和编辑实验代码

图 36
点击工具栏运行按钮运行实验代码:

图 37
实验现象:


图 39 1/2缩放图

图 40 1/4缩放图
实验结果解析:
代码运行结束后,拉到代码窗口底部,可看到实验使用的原图,缩放到1/2尺寸图和缩放到1/4尺寸图。(通过坐标轴可以计算缩放尺寸)
在系统终端通过组合键 Ctrl+c,输入 “y” 可退出 jupyter lab:

图 41
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)