DSP C6000教学实验箱操作教程_数字图像处理:5-3 图像缩放

news2024/10/7 12:23:02

一、实验目的

学习图像缩放的原理,掌握图像的读取方法,并实现图像缩放。

二、实验原理

图像缩放
在计算机图像处理和计算机图形学中,图像缩放是指对数字图像的大小进行调整的过程。图像缩放是一种非平滑的过程,需要在处理效率以及结果的平滑度和清晰度上做一个权衡。当一个图像的大小增加之后,组成图像的像素的可见度将会变得更高,从而使得图像表现得“软”。相反地,缩小一个图像将会增强它的平滑度和清晰度。

图像缩放包含图像缩小和图像放大。常用的图像缩放算法有:最邻近插值、双线性内插值和双三次插值法。

最邻近插值法

在 DSP 平台上,有限的高速存储资源限制了这些算法效率的直接发挥,需要针对算法及 DSP 平台的性能结构特点进行高效的数据调度。最邻近插值是最为简单的插值方法,就是把这个非整数坐标作一个四舍五入,取最近的整数点坐标处的点的颜色。在图像中最小的单位就是单个像素,但是在旋转个缩放的过程中如果出现了小数,那么就对这个浮点坐标进行简单的取整,得到一个整数型坐标,这个整数型坐标对应的像素值就是目标像素的像素值。取整的方式就是:取浮点坐标最邻近的左上角的整数点。

优点:简单且直观,速度也最快,计算简单,硬件实现所需资源少。

缺点:得到的图像质量低,特别是放大低质量的图像可能产生明显锯齿。

最邻近插值的的思想很简单,就是把这个非整数坐标作一个四舍五入,取最近的整数点坐标处的点的颜色。

image.png

将一个图像放大 N 倍,假设目标图像中(x,y)坐标对应的源图像坐标为(x_0,y_0)。

则可得到以下公式:

image.png

例如:将一个 33 的图像放大为 44 的图像,就相当于放大了 4/3 倍,则目标图像中

(1,3)坐标对应的源图像坐标为(1,2)。

image.png

程序流程设计

程序流程设计中首先要读取工程目录下的BMP图像,接着进行缩放处理,最后保存缩放处理后的图像。

image.png

三、操作现象

本实验所需硬件为实验板、仿真器、LCD和电源。

image.png

硬件连接

(1)连接仿真器和电脑的USB接口,

(2)将拨码开关拨到DEBUG模式01111,连接实验箱电源,拨动电源开关上电。

image.png

软件操作

导入工程,选择Demo文件夹下的对应工程

编译工程,生成可执行文件

将CCS连接实验箱并加载程序

程序加载完成后点击运行程序

运行程序后,CCS的Console窗口会打印相关信息。

稍等片刻后,图像处理完成,程序执行完成后会在断点处停下。

可以通过 CCS 的图像显示窗口查看处理前后的图片对比。

点击工具,选择图像分析工具。在弹出的 Image 窗口中右击鼠标,在弹出的菜单栏中选择"Import Properties",选择工程目录下的 in.txt 配置文件,选择后等待图片加载,加载完成后显示原图片。

txt 配置文件是提前配置好的图像属性,在 Properties 属性可看到 in.txt 文件的设置参数。原图的尺寸为640*380。

再次点击工具,选择图像分析工具。在弹出的 Image 窗口中右击鼠标,在弹出的菜单栏中选择"Import Properties",选择工程目录下的out.txt 配置文件,选择后等待图片加载,加载完成后显示缩放后的图片。

在 Properties 属性可看到out.txt 文件的设置参数。放大后的图片尺寸为960*570。

同时,可在工程的Image 目录下直接查看转换后的图片 Out.bmp。

实验结束后,点击红色按钮退出CCS与实验箱的连接,最后实验箱断电即可。

image.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1846913.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

通过“BOSS”精通比特币,深入认识私钥、账户和钱包

来源:币界原创 作者:636Marx 无论当今数字货币技术如何发展,认识区块链技术幕后的关键机制至关重要。无论您是新手还是经验丰富的数字货币从业者,掌握钱包地址、公钥和私钥的复杂性都有无可替代重要性。进入 BOSS Wallet,这是一款尖端的 Web…

Kubernates容器化JVM调优笔记(内存篇)

Kubernates容器化JVM调优笔记(内存篇) 先说结论背景思路方案 先说结论 1、首先如果是JDK8,需要使用JDK8_191版本以上,才支持容器化环境和以下参数,否则就更新到JDK10以上,选择对应的镜像构建就行了 2、在容…

day01-anaconda的安装

Anaconda的安装 参考地址: http://t.csdnimg.cn/mUmSp 安装完毕,可以卸载电脑中的其他python版本,在控制面板中进行卸载。 在命令行指令中输入 pythonPython 3.8.3 (default, Jul 2 2020, 17:30:36) [MSC v.1916 64 bit (AMD64)] :: An…

【React 】折叠面板,点击展开时再请求数据

需求背景:使用折叠面板的形式展示数据,面板内部数据需要在打开时请求接口获取。 遇到问题:最开始使用Antd 的折叠面板组件,它对于数据直接渲染是没问题的,但是不好满足打开面板时再动态加载数据的需求,于是…

兴业严选|朝阳、大兴、丰台、等5.9折起总有一套适合你~

近日于上海,出现了一桩令人始料未及之事。一套地处浦东、面积达 245.7 平方米的住宅进行挂网拍卖。 出乎意料的是,此套房子受到众多买家的青睐,历经一番激烈的竞价竞争,最终以 1766 万元的价格成交,折合每平方米 7187…

kakfa发版丢消息事件分析

背景 其他部门同事反馈在项目发版/重启(kill -15)的那段时间,经常会出现导致 C 端业务出现问题,从而产生资损 一听资损,赶紧应答下来,了解了下具体情况,然后立马去排查了 问题分析 结合同事的描述以及对业务的了解&a…

8小时出500杯,投诉三次辞退?Manner逼疯员工…?

一边歇斯底里的咆哮:「你投诉啊」!一边将咖啡粉泼向顾客……一场大战要不是隔着岛台,就真的燃起来了……‍ 好巧不巧,同一天,另一段视频中的顾客就没那么好运了,男店员冲上去就给女顾客一个耳光……‍‍ 想…

【ai】tx2-nx 开通samba

ubutn服务器加入了samba给jetson也加入一个samba 添加root用户 密码与nvidia一样 添加nvidia 到suoders中并添加samba账号 nvidia@tx2-nx:~$ nvidia@tx2-nx:~$ nvidia@tx2-nx:~$ nvidia@tx2-nx:~$ sudo vi /etc/sudoers nvidia@tx2-nx:~$ sudo chm

成熟的自动化运维平台有哪些特点?

点击进入运维资料库 在现代企业运维中,自动化运维平台已经成为不可或缺的工具。随着技术的发展,企业对系统稳定性和效率的要求越来越高,传统的手工运维方式已无法满足需求。于是,自动化运维平台应运而生,成为提升运维效…

泵设备的监测控制和智慧运维

泵是一种输送流体或使流体增压的机械。它通过各种工作原理(如离心、柱塞等)将机械能转换为流体的动能或压力能,从而实现液体的输送、提升、循环等操作。 泵的一些具体应用场景: 1.智能水务:在城市供水管网中&#xff…

推动产业数字化转型,六个方面引领变革

从工业经济时代走向数字经济时代,世界经济发生着全方位、革命性的变化,产业数字化便是最显著的表现之一。当前,产业数字化不断深入发展,平台经济、工业互联网、智能制造等新业态、新模式不断涌现,成为了数字经济的重要…

【element-ui】el-date-picker动态设置picker-options

<el-date-pickerv-model"formObj.startDate"type"date"placeholder"开始时间":picker-options"startPickerOptions"> </el-date-picker><el-date-pickerv-model"formObj.endDate"type"date"placeh…

【linux】内核源码TCP->IP->L2层函数调用继续摸索中

日志打印的时候&#xff0c;把行数也打印了&#xff1a; 登录 - Gitee.comhttps://gitee.com/r77683962/linux-6.9.0/commit/b847489a9910f68b9581fd8788807c697c82cdbd 上回基于应用层wget操作找到TCP调用的一些接口&#xff0c;并且已经到IP层的一些接口&#xff0c;当前基…

vue2与vue3数据响应式对比之检测变化

vue2 由于javascript限制&#xff0c;vue不能检测数组和对象的变化 什么意思呢&#xff0c;举例子来说吧 深入响应式原理 对象 比如说我们在data里面定义了一个info的对象 <template><div id"app"><div>姓名: {{ info.name }}</div><…

WPF文本框中加提示语

效果&#xff1a; WPF中貌似不能像winfrom里一样直接加提示语&#xff0c;需要使用TextBox.Style&#xff0c;将Trigger标签插入进去。 贴源码&#xff1a; <WrapPanel Name"TakeOverExpressNo1"><Label Content"物流单号&#xff1a;"><…

人工智能在气象预报领域的崛起:GraphCast引领新纪元

最近&#xff0c;谷歌推出的天气预测大模型GraphCast在全球范围内引起了广泛关注&#xff0c;其卓越的表现不仅刷新了人们对AI能力的认知&#xff0c;更预示着传统天气预报工作模式的深刻变革。 GraphCast是一款基于机器学习技术的天气预测工具&#xff0c;它通过深度学习和大数…

安卓开发使用proxyman监控真机

1、真机跟电脑连接到同个网络中 2、手机里面设置代理&#xff0c;代理地址为proxyman上面指示的地址。 3、一般情况下&#xff0c;电脑的对应的端口是没开放的。需要到防火墙里面新建规则。入站规则 选择端口输入上方端口号 这样就能监控到了

QT自定义标题栏窗口其一:实现拖动及可拉伸效果

1、效果 2、核心代码 #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(paren

js处理数据(过滤)

复选框的值这里为true或false 选中为true&#xff0c;未选中为false 看看数据&#xff1a; type中的前面那些字母是固定的不会变 括号里面的不固定&#xff0c;那就把固定的作为前缀去过滤&#xff0c;后面怎么变都无所谓&#xff0c;当checkbox三个值中的某个或某些值为false时…

Abaqus ORB插件如何解决Abaqus OBD结果文件太大问题

Abaqus OBD 是什么,为何需要Abaqus ORB 插件&#xff1f; Abaqus提供了一种名为OBD&#xff08;Output DataBase&#xff09;的文件格式&#xff0c;该文件格式用于存储有限元分析结果&#xff0c;包括应力、位移等信息。这种格式的文件通常用于Abaqus的后处理分析。 当我们进…