DSP教学实验箱_数字图像处理_操作教程:5-1 图像旋转

2024-06-14 15:04

本文主要是介绍DSP教学实验箱_数字图像处理_操作教程:5-1 图像旋转,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、实验目的

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

二、实验原理

图像旋转

图像的旋转是指以图像的某一点为原点以逆时针或顺时针旋转一定的角度。其本质是以图像的中心为原点,将图像上的所有像素都旋转一个相同的角度。和图像平移一样,图像旋转也是图像的位置变换,对于旋转后超出源图像范围的区域要处理为不显示。

旋转后的图像不会变形,但是其垂直对称轴和水平对称轴都发生了变化,旋转后像素的坐标要经过复杂的数学运算得出。而且图像在经过旋转变换后,其宽度和高度都要发生变化,所以原始图像的中心点和输出图像的中心点的坐标是不同的。

图像的旋转不再是由一个矩阵变换就能获得坐标的映射关系,它涉及多次矩阵变换。

在数学坐标系中,将坐标为(x_0,y_0)的像素点顺时针旋转θ角度后,其坐标为(x,y),其中r表示像素坐标距离原点的距离,α表示旋转前像素点与原点连线夹角的度数。

image.png

旋转前:

x_0=rcosα

y_0=rsinα

旋转后:

x=rcos(α−θ)=rcosαcosθ+rsinαsinθ=x_0cosθ+y_0sinθ

y=rsin(α−θ)=rsinαcosθ−rcosαsinθ=−x_0sinθ+y_0cosθ

image.png

坐标系

在旋转过程中,需要经过两次坐标变换。图像的坐标系和数学的坐标系是不一样的。在数字图像的坐标系中,y轴在下方,而在数学坐标系中,y轴在上方。

image.png

坐标映射

(1)图像的旋转是按照图像的中心点旋转指定角度,为了转换方便,需要以图像的中心作为坐标原点,故在进行旋转操作前需要先对坐标进行变换,即将图像坐标系转换为数学坐标系。

设原始图像的宽度和高度分别为W和H,则第一次映射关系为:

x=x_0−0.5W

y=y_0−0.5H

(2)图像经过旋转后需要再次进行坐标转换,将数学坐标系转换为图像的坐标系。

x=x_0+0.5W_new

y=y_0+0.5H_new

图像旋转的核心公式

通过图像旋转的核心公式可求得输出图像任意像素映射在原始图像的坐标位置。其中,f_1和f_2为两个中间量(旋转参数)。

image.png

程序流程设计

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

image.png

三、操作现象

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

image.png

硬件连接

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

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

image.png

软件操作

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

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

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

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

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

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

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

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

txt 配置文件是提前配置好的图像属性,在 Properties 属性可看到 in.txt 文件的设置参数。

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

在 Properties 属性可看到out.txt 文件的设置参数。

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

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

image.png

这篇关于DSP教学实验箱_数字图像处理_操作教程:5-1 图像旋转的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1060736

相关文章

SpringBoot集成redisson实现延时队列教程

《SpringBoot集成redisson实现延时队列教程》文章介绍了使用Redisson实现延迟队列的完整步骤,包括依赖导入、Redis配置、工具类封装、业务枚举定义、执行器实现、Bean创建、消费... 目录1、先给项目导入Redisson依赖2、配置redis3、创建 RedissonConfig 配

Python正则表达式匹配和替换的操作指南

《Python正则表达式匹配和替换的操作指南》正则表达式是处理文本的强大工具,Python通过re模块提供了完整的正则表达式功能,本文将通过代码示例详细介绍Python中的正则匹配和替换操作,需要的朋... 目录基础语法导入re模块基本元字符常用匹配方法1. re.match() - 从字符串开头匹配2.

Java实现在Word文档中添加文本水印和图片水印的操作指南

《Java实现在Word文档中添加文本水印和图片水印的操作指南》在当今数字时代,文档的自动化处理与安全防护变得尤为重要,无论是为了保护版权、推广品牌,还是为了在文档中加入特定的标识,为Word文档添加... 目录引言Spire.Doc for Java:高效Word文档处理的利器代码实战:使用Java为Wo

sysmain服务可以禁用吗? 电脑sysmain服务关闭后的影响与操作指南

《sysmain服务可以禁用吗?电脑sysmain服务关闭后的影响与操作指南》在Windows系统中,SysMain服务(原名Superfetch)作为一个旨在提升系统性能的关键组件,一直备受用户关... 在使用 Windows 系统时,有时候真有点像在「开盲盒」。全新安装系统后的「默认设置」,往往并不尽编

基于C#实现PDF转图片的详细教程

《基于C#实现PDF转图片的详细教程》在数字化办公场景中,PDF文件的可视化处理需求日益增长,本文将围绕Spire.PDFfor.NET这一工具,详解如何通过C#将PDF转换为JPG、PNG等主流图片... 目录引言一、组件部署二、快速入门:PDF 转图片的核心 C# 代码三、分辨率设置 - 清晰度的决定因

Python自动化处理PDF文档的操作完整指南

《Python自动化处理PDF文档的操作完整指南》在办公自动化中,PDF文档处理是一项常见需求,本文将介绍如何使用Python实现PDF文档的自动化处理,感兴趣的小伙伴可以跟随小编一起学习一下... 目录使用pymupdf读写PDF文件基本概念安装pymupdf提取文本内容提取图像添加水印使用pdfplum

Python从Word文档中提取图片并生成PPT的操作代码

《Python从Word文档中提取图片并生成PPT的操作代码》在日常办公场景中,我们经常需要从Word文档中提取图片,并将这些图片整理到PowerPoint幻灯片中,手动完成这一任务既耗时又容易出错,... 目录引言背景与需求解决方案概述代码解析代码核心逻辑说明总结引言在日常办公场景中,我们经常需要从 W

Java Scanner类解析与实战教程

《JavaScanner类解析与实战教程》JavaScanner类(java.util包)是文本输入解析工具,支持基本类型和字符串读取,基于Readable接口与正则分隔符实现,适用于控制台、文件输... 目录一、核心设计与工作原理1.底层依赖2.解析机制A.核心逻辑基于分隔符(delimiter)和模式匹

使用Python的requests库来发送HTTP请求的操作指南

《使用Python的requests库来发送HTTP请求的操作指南》使用Python的requests库发送HTTP请求是非常简单和直观的,requests库提供了丰富的API,可以发送各种类型的HT... 目录前言1. 安装 requests 库2. 发送 GET 请求3. 发送 POST 请求4. 发送

spring AMQP代码生成rabbitmq的exchange and queue教程

《springAMQP代码生成rabbitmq的exchangeandqueue教程》使用SpringAMQP代码直接创建RabbitMQexchange和queue,并确保绑定关系自动成立,简... 目录spring AMQP代码生成rabbitmq的exchange and 编程queue执行结果总结s