`

[转]矩阵的学习<2>

阅读更多

本篇幅我们就结合Android 中的android.graphics.Matrix来具体说明,还记得我们前面说的图像旋转的矩阵:

Rotate

从最简单的旋转90度的是:

Rotate-90-Matrix

在android.graphics.Matrix中有对应旋转的函数:
Matrix matrix = new Matrix();
matrix.setRotate(90);
Test.Log(MAXTRIX_TAG,”setRotate(90):%s” , matrix.toString());

Rotate-90-Android

查看运行后的矩阵的值(通过Log输出):

Rotate-90-Android-log

与上面的公式基本完全一样(android.graphics.Matrix采用的是浮点数,而我们采用的整数)。

有了上面的例子,相信大家就可以亲自尝试了。通过上面的例子我们也发现,我们也可以直接来初始化矩阵,比如说要旋转30度:

Rotate-30-Matrix

前面给大家介绍了这么多,下面我们开始介绍图像的镜像,分为2种:水平镜像、垂直镜像。先介绍如何实现垂直镜像,什么是垂直镜像就不详细说明。图像的垂直镜像变化也可以用矩阵变化的表示,设点P0(x0 ,y0 )进行镜像后的对应点为P(x ,y ),图像的高度为fHeight,宽度为fWidth,原图像中的P0(x0 ,y0 )经过垂直镜像后的坐标变为(x0 ,fHeight- y0);
x = x0
y = fHeight – y0
推导出相应的矩阵是:

垂直镜像-Matrix

final float f[] = {1.0F,0.0F,0.0F,0.0F,-1.0F,120.0F,0.0F,0.0F,1.0F};
Matrix matrix = new Matrix();
matrix.setValues(f);

按照上述方法运行后的结果:
垂直镜像-Android

至于水平镜像采用类似的方法,大家可以自己去试试吧。

实际上,使用下面的方式也可以实现垂直镜像:
Matrix matrix = new Matrix();
matrix.setScale (1.0,-1.0);
matrix.postTraslate(0, fHeight);

分享到:
评论

相关推荐

    智能控制及其MATLAB实现2005李国勇编著.part3.rar

    1.3.1 神经控制的基本原理&lt;br&gt; 1.3.2 神经网络在控制中的主要作用&lt;br&gt; 1.3.3 神经网络控制系统的分类&lt;br&gt; 第2章 MATLAB神经网络工具箱函数&lt;br&gt; 2.1 感知机神经网络工具箱函数&lt;br&gt; 2.2 线性神经网络工具箱函数...

    数据结构(C++)有关练习题

    &lt;br&gt;4、用邻接矩阵或邻接图实现一个有向图的存储,并实现单源最短路径算法的实现(这个类的一个成员函数),并能输出该图的关键路径。&lt;br&gt;注:1、要用面向对象的方法设计代码;&lt;br&gt;2、一个图是一个类的实例;&lt;br&gt;3、类...

    执行器故障重复过程的鲁棒迭代学习容错控制方法及应用

    然后, 利用线性矩阵不等式(LMI) 技术, 分析和优化控制系统在时间和迭代方向上的容错性能以及对干扰的抑制性能, 同时给出系统满足这&lt;br&gt; 些性能的充分条件, 并进一步通过求解LMI 凸优化问题获得控制器参数; 最后, ...

    ml:简单数学库

    模板化2D向量类tvec2&lt;T&gt; 平面和直线: plane , line&lt;T&gt; (具有3d和4d线create_line line3, line4专门知识)和create_line用于获得通过两个点的线 特殊矩阵,例如投影,平移,缩放和旋转:命名空间matrices 方便的...

    数据结构学习--图的邻接矩阵和邻接表存储

    任意给出个图(本实验中使用有向图)的存储方式,试设计一个程序,在计算机中完成 该图的当前存储方式到另外一种存储方式的转换。

    C#本人开发的彩票旋转矩阵选号杀号王双色球专用版1.5

    2、市面上的一般彩票软件所提供的旋转矩阵只有廖廖几个方案(如保6中5,保5中4),本软件则提供了几十种方案,应有尽有。 3、选号杀号功能的强大和全面是其它一般彩票软件所没有的。 4、过滤功能全面,完全可以...

    基于numpy矩阵运算实现的,卡尔曼滤波器的实现 内附原理及说明python源码+文档说明

    &lt;项目介绍&gt; 基于numpy矩阵运算实现的,卡尔曼滤波器的实现。内附原理及说明python源码+文档说明 卡尔曼滤波器的实现。内附原理及说明。基于numpy矩阵运算。 说明 对于一个线性系统的状态差分方程为 $$x_k = A * x_{...

    MATLAB读取图像,并转换为灰度矩阵,使用MATLAB的edge函数检测边缘并显示结果(附详细操作步骤).txt

    2. 将图像转换为灰度矩阵。 3. 使用Canny算法检测边缘。 4. 显示原始图像和边缘检测结果。 通过这个例子,您可以学习如何读取图像文件、操作矩阵以及使用MATLAB的边缘检测函数。这些功能可以应用于各种图像处理任务...

    51单片机矩阵式键盘的编程方法

    根据电路原理图,键盘扫描方法是:行线P1O~P13为输出线,列线P14~P17为输入线...51单片机综合学习系统资源丰富,板内有:8位LED数码管、32路LED、4x4矩阵键盘、4个直控按键盘、蜂鸣器喇叭、继电器试验、I2C总线接口、S

    opencv学习资料

    1.2 2、有用的学习资源 1.2.1 (1) 参考手册: 1.2.2 (2) 网络资源: 1.2.3 (3) 书籍: 1.2.4 (4) 视频处理例程(在 &lt;opencv-root&gt;/samples/c/): 1.2.5 (5) 图像处理例程 (在 &lt;opencv-root&gt;/samples/c/...

    infers:通过TypesScript进行矩阵运算和机器学习的库

    推论Typescript的机器学习和矩阵运算库。 中文自述文件在。已安装确保已安装NPM,切换到项目目录并执行以下命令。 $ npm install infers@latest 然后在项目中引用: import { Matrix , BPNet , SeqModel } from '...

    AI学习知识点.xmind

    *AI学习知识点* 1. 基础知识 概率论 微积分与逼近论 极限、微分、积分的基本概念 利用逼近的思想理解微积分,利用积分的方式理解概率论 概率论的基础 古典模型 常见的概率分布 大数定理和中心极限定理 ...

    基于矩阵转换的卷积CUDA计算优化方法_方玉玲(2019-09-16-20-56_read)1

    摘要:卷积计算作为深度学习中重要的内容得到了广泛的研究与优化。其中,图像转为列(im2col)的方法应用最为广泛。基于此,本文提出了一种高效的基于矩阵转换的卷积

    机器学习-深度学习

    转到应用程序数据&gt;&gt;本地&gt;&gt;程序&gt;&gt; python &gt;&gt;脚本 在该位置打开CMD pip insatll jupyter 安装后写jupyter笔记本 使用Google Colab 去合作 在colab中启动新的Notebook导入文件 from google.colab import files ...

    10个Python 初学者必知编码小技巧

    技巧 #1 字符串翻转 &gt;&gt;&gt; a = codementor &gt;&gt;&gt; print Reverse is,a[::-1] 翻转后的结果为 rotnemedoc  PS:很多人在学习Python的过程中,往往因为遇问题解决不了或者没好的教程从而导致自己放弃...&gt;&gt;&gt; mat = [[1, 2, 3

    OpenCV_编程简介(入门必读)

    1.2 2、有用的学习资源 1.2.1 (1) 参考手册: 1.2.2 (2) 网络资源: 1.2.3 (3) 书籍: 1.2.4 (4) 视频处理例程(在 &lt;opencv-root&gt;/samples/c/): 1.2.5 (5) 图像处理例程 (在 &lt;opencv-root&gt;/samples/c...

    OpenGl实验报告.doc

    实验目的与要求 1、学习和掌握OpenGL的使用 2、掌握矩阵堆栈的实现方法 3、根据自己的创意实现实验内容,进一步掌握和理解OpenGL的使用 2. 实验内容 1、请编写地球围绕太阳自动旋转的方式 2、请再加上一个月亮, 并...

    学习OPENCV(中文版)

    第2章 OpenCV入门 开始准备 初试牛刀—— 显示图像 第二个程序—— 播放AVI视频 视频播放控制 一个简单的变换 一个复杂一点的变换 从摄像机读入数据 写入AVI视频文件 小结 练习 第3章 初探OpenCV OpenCV的基本数据...

Global site tag (gtag.js) - Google Analytics