2D/3D加速器算子
1、镜像算子
1.1 水平(X轴)镜像
需要将一块内存中的像素,水平镜像写入另一块内存
确定好像素的高度H和宽度W,假设A像素坐标为(src_x0 ,src_y0 ),
对应src内存中地址为: src_addr = src_y0 * W + src_x0 ;
水平镜像,可以观察一个小的二维数组,分析前后的坐标变化规律;
规律如下 :dst_X = src_x0 ; dst_Y = (H-1) - src_y0 ;
对应dst内存中地址为: dst_addr = dst_Y * W + dst_X ;
反推,已知目的像素坐标,推算原始像素坐标
规律如下 :src_x0 = dst_X ; src_y0 = (H-1) - dst_Y ;
1.2 垂直(Y轴)镜像
需要将一块内存中的像素,垂直镜像写入另一块内存
确定好像素的高度H和宽度W,假设A像素坐标为(src_x0 ,src_y0 ),
对应src内存中地址为: src_addr = src_y0 * W + src_x0 ;
垂直镜像,可以观察一个小的二维数组,分析前后的坐标变化规律;
规律如下 :dst_X = (W-1) - src_x0 ; dst_Y = src_y0 ;
对应dst内存中地址为: dst_addr = dst_Y * W + dst_X ;
反推,已知目的像素坐标,推算原始像素坐标
规律如下 :src_x0 = (W-1) - dst_X ; src_y0 = dst_Y ;
2、旋转算子
2.1 顺时针旋转90度
需要将一块内存中的像素,旋转90度写入另一块内存
确定好像素的高度H和宽度W,假设A像素坐标为(src_x0 ,src_y0 ),旋转后(X,Y)
对应src内存中地址为: src_addr = src_y0 * W + src_x0 ;
旋转90度,可以观察一个小的二维数组,分析旋转前后的坐标变化规律;
规律如下 :dst_Y = src_x0 ; dst_X = (H-1) - src_y0 ;
对应dst内存中地址为: dst_addr = dst_Y * H + dst_X ;(旋转后src的HW正好与dst的HW相反)
反推,已知目的像素坐标,推算原始像素坐标
规律如下 :src_x0 = dst_Y ;src_y0 = (H-1) - dst_X ;
逆时针旋转时:
src_x0 = (W-1) - dst_Y ;src_y0 = dst_X ;
2.2 顺时针旋转180度
需要将一块内存中的像素,旋转180度写入另一块内存
确定好像素的高度H和宽度W,假设A像素坐标为(src_x0 ,src_y0 ),
对应src内存中地址为: src_addr = src_y0 * W + src_x0 ;
旋转180度,可以观察一个小的二维数组,分析旋转前后的坐标变化规律;
规律如下 :dst_X = (W-1) - src_x0 ;dst_Y = (H-1) - src_y0 ;
对应dst内存中地址为: dst_addr = dst_Y * W + dst_X ;(旋转后src的HW正好与dst的HW相等)
反推,已知目的像素坐标,推算原始像素坐标
规律如下 :src_x0 = (W-1) - dst_X ;src_y0 = (H-1) - dst_Y ;
逆时针旋转时:【与顺时针旋转相同】
src_x0 = (W-1) - dst_X ;src_y0 = (H-1) - dst_Y ;
2.3 旋转270度
需要将一块内存中的像素,旋转180度写入另一块内存
确定好像素的高度H和宽度W,假设A像素坐标为(src_x0 ,src_y0 ),
对应src内存中地址为: src_addr = src_y0 * W + src_x0 ;
旋转270度,可以观察一个小的二维数组,分析旋转前后的坐标变化规律;
规律如下 :dst_X = src_y0 ; dst_Y = (W-1) - src_x0 ;
对应dst内存中地址为: dst_addr = dst_Y * H + dst_X ;(旋转后src的HW正好与dst的HW相反)
反推,已知目的像素坐标,推算原始像素坐标
规律如下 :src_x0 = (W-1) - dst_Y ; src_y0 = dst_X ;
逆时针旋转时:
src_x0 = dst_Y ; src_y0 = (H-1) - dst_X ;
3、图像转置
图像的转置是指将图像像素的x坐标和y坐标互换,相应的转置后图像的宽度与长度会随之互换。
图像的转置变换也可以通过先水平镜像,再逆时针旋转九十度来实现。
2D/3D加速器算子相关推荐
- 2D/3D加速器概念
结构光 1.结构光的类型就分为很多种,既然是结构光,当然是将光结构化,简单的结构化包括点结构光,线结构光以及简单的面结构光等.复杂一点的结构化就上升到光学图案的编码了. 2.结构光投射到待 ...
- Unity安卓游戏开发:打造7款2D 3D游戏 Unity Android Game Development : Build 7 2D 3D Games
流派:电子学习| MP4 |视频:h264,1280×720 |音频:AAC,44.1 KHz 语言:英语+中英文字幕(根据原英文字幕机译更准确) |大小:15.4 GB |时长:32h 55m Un ...
- Paper:《How far are we from solving the 2D 3D Face Alignment problem? 》解读与翻译
Paper:<How far are we from solving the 2D & 3D Face Alignment problem? >解读与翻译 目录 How far a ...
- [骨科手术导航]2D/3D医学图像配准研究_罗博博_南方科技大学
1.绪论 1.1 手术导航 #手术导航是以CT/MRI等医学影像数据为基础,通过虚拟现实技术,定位追踪后显示出手术器械相对病变组织的位置关系,从而实现对手术过程的实时引导. #在外科手术中,临床医生能 ...
- Waymo 2020 | 2D/3D目标检测、跟踪和域自适应性冠军解决方案解析
©PaperWeekly 原创 · 作者|黄飘 学校|华中科技大学硕士 研究方向|多目标跟踪 随着最近 Waymo Open Dataset Challenges 2020 的落幕,其中关于 2D/3 ...
- html5 2d,3d游戏引擎
html5 2d,3d游戏引擎 http://biz.turbulenz.com/developers posted on 2014-10-12 21:58 雨亭 阅读(...) 评论(...) 编辑 ...
- 跨平台2D/3D游戏开发框架libGDX发布1.2.0更新
摘要:基于OpenGL (ES)的跨平台2D/3D游戏开发框架libGDX不仅开源免费,而且具有极为强大的兼容性和高效性,近日,libGDX发布全新1.2.0版本,除修复Bug之外,还新增了OpenG ...
- MedMNIST:18个数据集开启2D+3D医学影像之旅,可免费下载
关注公众号,发现CV技术之美 以下文章来源于中国图象图形学报 ,作者倪冰冰, 杨健程等 上海交通大学等 MedMNIST v2医学图像数据集已经发布,相较 MedMNIST v1,MedMNIST v ...
- 基于 HTML5 Canvas 的简易 2D 3D 编辑器
不管在任何领域,只要能让非程序员能通过拖拽来实现 2D 和 3D 的设计图就是很牛的,今天我们不需要 3dMaxs 等设计软件,直接用 HT 就能自己写出一个 2D 3D 编辑器,实现这个功能我觉得成 ...
最新文章
- CSS 特效 (教程还是英文的好)
- python利器怎么编程-C++和Python混合编程的利器
- ABAP高级顾问应该掌握的技术
- Nginx反向代理+Go服务实践
- Ubuntu开启防火墙
- 对象必须实现 iconvertible。_java面向对象最全入门笔记(通俗易懂,适合初学者)...
- Tomcat下部署多个项目
- python主要用于做什么-python主要用于哪些方向
- android Camera 录像时旋转角度
- 如何在JavaScript中将字符串的首字母大写?
- 私网互联(本质是三层路由)
- PHP之父Rasmus Lerdorf演讲:激情下的PHP 百作坊
- Celery+django+redis异步执行任务
- 用turtle作画玩一玩吧
- Java实现CRC16 CCITT
- 北邮智能车仿真培训(一)—— 安装仿真环境
- 05.抽象队列同步器AQS应用之Lock详解
- 期货投资者教育系列丛书 铝
- NORDIC Thingy:52 蓝牙 BLE 服务协议定义
- 诛仙、凡人、遮天、剑来竟都不是第四届橙瓜网络文学奖第一仙侠!