线性变换

线性代数的本质 (3) 矩阵与线性变换

匿名 (未验证) 提交于 2019-12-03 00:30:01
很遗憾,Matrix(矩阵)是什么是说不清的。你必须得自己 亲眼看看 。----墨菲斯 一、线性变换(Linear transformation) 1.transformation(变换)本质上是“函数”的一种花哨的说法,它接收输入内容,并输出对应结果。特别地,在线性代数的情况下,我们考虑的是接收一个向量并且输出一个向量的变换。 2.为什么“变换”和“函数”意义相同,却使用前者而不是后者?使用“变换”是在暗示以特定方式来可视化这一输入-输出关系。一种理解“向量的函数”的方法是使用运动。 3.变换是很随意的,但是线性变换需要具备以下两条性质: 直线在变换后仍然保持为直线,不能有所弯曲。 原点必须保持固定。 4.总的来说,你应该把线性变换看作是“保持网格线平行并等距分布”的变换。 5.如何用数值描述线性变换?我们只需要记住基向量,i帽和j帽。v向量=-1i帽+2j帽。那么变换后的i帽和j帽从[1,-2]到[3,0]通过计算可以得到v向量的值为[5,2]。所以很炫酷呀,我们只需要记住基向量就可以推断出任何向量的落脚点(变换后的落脚点),完全不必观察变换本身是什么样 6.一个二维线性变换仅由四个数字完全确定,变换后i帽的两个坐标与变换后j帽的两个坐标,通常我们将这些坐标包装在一个2*2的格子中,称它为2*2矩阵,你可以把它的列理解为两个特殊的向量,即i帽和j帽分别落脚的位置。 7

[转] 理解矩阵

孤人 提交于 2019-12-03 00:08:41
from: https://www.cnblogs.com/marsggbo/p/10144060.html 线性代数课程,无论你从行列式入手还是直接从矩阵入手,从一开始就充斥着莫名其妙。比如说,在全国一般工科院系教学中应用最广泛的同济线性代数教材(现在到了第四版),一上来就介绍逆序数这个“前无古人,后无来者”的古怪概念,然后用逆序数给出行列式的一个极不直观的定义,接着是一些简直犯傻的行列式性质和习题——把这行乘一个系数加到另一行上,再把那一列减过来,折腾得那叫一个热闹,可就是压根看不出这个东西有嘛用。大多数像我一样资质平庸的学生到这里就有点犯晕:连这是个什么东西都模模糊糊的,就开始钻火圈表演了,这未免太“无厘头”了吧!于是开始有人逃课,更多的人开始抄作业。这下就中招了,因为其后的发展可以用一句峰回路转来形容,紧跟着这个无厘头的行列式的,是一个同样无厘头但是伟大的无以复加的家伙的出场——矩阵来了!多年之后,我才明白,当老师犯傻似地用中括号把一堆傻了吧叽的数括起来,并且不紧不慢地说:“这个东西叫做矩阵”的时候,我的数学生涯掀开了何等悲壮辛酸、惨绝人寰的一幕!自那以后,在几乎所有跟“学问”二字稍微沾点边的东西里,矩阵这个家伙从不缺席。对于我这个没能一次搞定线性代数的笨蛋来说,矩阵老大的不请自来每每搞得我灰头土脸,头破血流。长期以来,我在阅读中一见矩阵,就如同阿Q见到了假洋鬼子

OpenCV学习笔记(十五):图像仿射变换:warpAffine(),getRotationMatrix2D()

匿名 (未验证) 提交于 2019-12-03 00:03:02
OpenCV学习笔记(十五):图像仿射变换:warpAffine(),getRotationMatrix2D() 一个任意的仿射变换都能表示为乘以一个矩阵(线性变换)接着再加上一个向量(平移)的形式。 仿射变换(Affine Transformation或 Affine Map),是指在几何中**一个向量空间进行一次线性变换并接上一个平移,变换为另一个向量空间的过程。**它保持了二维图形的==“平直性” (即:直线经过变换之后依然是直线)和 “平行性”==(即:二维图形之间的相对位置关系保持不变,平行线依然是平行线,且直线上点的位置顺序不变)。 那么, 我们能够用仿射变换来表示如下三种常见的变换形式: 1)旋转,rotation (线性变换) 2)平移,translation(向量加) 3)缩放,scale(线性变换) 1、warpAffine()函数 void warpAffine ( InputArray src , // 源图像 OutputArray dst , // 函数调用后的运算结果 InputArray M , // 2×3的变换矩阵 Size dsize , // 表示输出图像的尺寸 int flags = INTER_LINEAR , // 插值方法的标识符 intborderMode = BORDER_CONSTANT , // 边界像素模式 const

08-1 从线性变换角度看叉积

匿名 (未验证) 提交于 2019-12-02 23:03:14
I.问题描述 我们在08小节给出一个计算三维向量叉积的公式,但是这个公式 Ϊɶ 是那样呢? 为啥这样计算出的向量 满足三条性质呢 ? (1).长度=平行四边形的面积 (2).方向垂直于向量v和向量u (3).满足右手定则 通过公式推理,我们可以得出满足两条性质。但是我们下面用更直观的解释。 II.预备知识 1.对偶性 指和一个向量点积 和 用这个向量进行线性变换 等价 III.证明计划 1.根据向量v和w定义一个三维到一维的线性变换 ָ : 定义一个线性变换方程,可以把三维向量转到一维的数,用到 非方阵 2.找到它的对偶向量 ָ : 把线性变换矩阵 换成 向量形式 3.说明这个对偶向量就是 ָ : 证明这个向量在几何上满足叉积的三个性质,而计算描述就是最终的向量结果 1.从行列式考虑 行列式确实能描述面积,前面行列式那章讲过了。 三个三维向量的体积可以通过行列式来计算,输出一个 数 上图不是叉积,因为叉积的定义是接受俩三维向量并输出一个向量。 并不是 接受三个向量并输出一个数 2.证明的转折点 (1)三维空间到数轴的线性变换 把第一列换成向量(x,y,z),该向量可变,所以我们就通过行列式定义了一个 三维向量到一维的函数 (函数的值是体积,有正负号) 该函数是线性的,所以可以用 线性变换的形式 表示这个函数。 线性变换和向量本身存在对偶性,所以我们可以把它立起来 表示成点积。 (1

数字图像处理之第三章

半世苍凉 提交于 2019-12-02 10:58:12
第三章 图像增强 1.图像增强的方法有很多种,按增强的目的和效果来划分,图像增强的方法大致可以分为灰度级修正、图像平滑、图像锐化、图像增晰和色彩增晰等。 2.灰度级修正(主要用来提高图像对比度,提高人眼视觉分辨能力,包括灰度变换和直方图修正等) 灰度级修正主要针对独立的像素点进行处理,由输入像素点的灰度值来决定相应输出像素点的灰度值,通过改变原始图像所占据的灰度范围而使图像在视觉上得到改观,这种变换没有利用像素点之间的相互空间关系,因而这种处理方法也称为点运算法。 3.灰度级修正有氛围灰度的线性变换、非线性变换和直方图均衡等。 1)灰度的线性变换就是将图像中的所有像素点的灰度按照线性变换函数进行变换; 2)当用某些非线性函数对图像灰度进行映射时,就可以实现图像灰度的非线性变换; 3)直方图修正:图像的灰度图直方图反映图像灰度的统计特性,变大了图像中取不同灰度值的面积或像素数在整幅图像中所占的比例,是图像中最基本的信息。用横坐标表示灰度级,纵坐标表示灰度级出现的频数,一幅图像的直方图可以表示为: 式中,N为一幅图像中的像素总数,nk为第k级灰度的像素数,rk表示第k个灰度级,L为灰度级数,p(rk)表示该灰度级出现的概率。 ①直方图均衡 直方图均衡的基本思想是对原始图像中的像素灰度做某种映射变换,使变换后的图像灰度的概率密度是均匀分布的,即变换后图像是一幅灰度级均匀分布的图像

Python 矩阵(线性代数)

╄→尐↘猪︶ㄣ 提交于 2019-12-02 04:56:44
Python 矩阵(线性代数) 这里有一份新手友好的 线性代数笔记 ,是和深度学习 花书 配套,还被Ian Goodfellow老师翻了牌。 笔记来自巴黎高等师范学院的博士生Hadrien Jean,是针对“花书”的 线性代数 一章,初来乍到的小伙伴可以在笔记的辅佐之下,了解深度学习最常用的数学理论,加以轻松的支配。 把 理论 和 代码 搭配食用,疗效更好。笔记里列举的各种 例子 ,可以帮初学者用一种更直观实用的方式学好线代。开始前,你需要准备好 Numpy 和 Python 。 然后来看一下,要走怎样一个疗程—— 1 标量、向量、矩阵和张量 △ 标量,向量,矩阵,张量 (左起) 这一课讲了向量和矩阵,以及它们的一些基础运算。另外,这里介绍了 Numpy 的一些相关 函数 ,也浅浅地谈到了 Broadcasting 机制。 2 矩阵和向量的乘法 △ 矩阵与向量的点乘 本小节主要讨论的是, 向量和矩阵的点积 ,我们可以从中了解矩阵的一些属性。之后,便是用矩阵符号来创建一个 线性方程组 ——这也是日后的学习里,经常要做的事情。 3 单位矩阵和逆矩阵 △ 单位矩阵长这样 我们要了解这两种矩阵 为什么重要 ,然后知道怎样在Numpy里和它们玩耍。另外,本小节包含用 逆矩阵求解线性方程组 的一个例题。 4 线性依赖与线性生成空间 线性方程组,除非 无解 ,不然要么有 唯一解 ,要么有

对比度增强(一):线性变换

*爱你&永不变心* 提交于 2019-12-01 13:23:49
线性变换: 图像为I,宽为W,高为H,输出图像记为O,图像的线性变换可以利用一下公式定义:      O(r,c)=a*I(r,c)+b 0≤r<H,0≤c<W 当a=1,b=0时,O为I的一个副本;如果a>1,则输出图像O的对比度比I有所增加;如果0<a<1,则O的对比度比I有所减小。 而b值的改变,影响的是输出图像的亮度,当b>0时,亮度增加;当b<0时,亮度减小。 分段线性变换: 针对不同灰度级范围进行不同的线性变换,即分段线性变换。     a1*I(r,c)+b1         I(r,c)<阈值1 O(r,c)= a2*I(r,c)+b2         阈值1≤I(r,c)<阈值2     a3*I(r,c)+b3        阈值2≤I(r,c)<阈值3 来源: https://www.cnblogs.com/tangjunjun/p/11688269.html

svg 入门

孤街醉人 提交于 2019-12-01 00:27:26
1.1 SVG简介 用途: 使用XML描述的矢量文件 规范: W3C标准(1.1)( http://www.w3.org/TR/SVG11/) 支持情况: IE9+、 Chrome33.0+、 Firefox28.0、Safari7.0+ 使用方式: 浏览器直接打开 在HTML中使用img标签 1 <img src="simple.svg" width="400" height="400"> 直接在HTML中使用SVG标签 1234567891011 <svg xmlns="http://www.w3.org/2000/svg" width="200" height="200"> <circle cx="100" cy="100" r="90" fill="#39f" /> <!-- Eyes --> <circle cx="70" cy="80" r="20" fill="white" /> <circle cx="130" cy="80" r="20" fill="white" /> <circle cx="65" cy="75" r="10" fill="black" /> <circle cx="125" cy="75" r="10" fill="black" /> <!-- Smile --> <path d="M 50 140 A 60 60 0 0 0 150 140

svg 入门

狂风中的少年 提交于 2019-12-01 00:24:17
1.1 SVG简介 用途: 使用XML描述的矢量文件 规范: W3C标准(1.1)( http://www.w3.org/TR/SVG11/) 支持情况: IE9+、 Chrome33.0+、 Firefox28.0、Safari7.0+ 使用方式: 浏览器直接打开 在HTML中使用img标签 1 <img src="simple.svg" width="400" height="400"> 直接在HTML中使用SVG标签 1234567891011 <svg xmlns="http://www.w3.org/2000/svg" width="200" height="200"> <circle cx="100" cy="100" r="90" fill="#39f" /> <!-- Eyes --> <circle cx="70" cy="80" r="20" fill="white" /> <circle cx="130" cy="80" r="20" fill="white" /> <circle cx="65" cy="75" r="10" fill="black" /> <circle cx="125" cy="75" r="10" fill="black" /> <!-- Smile --> <path d="M 50 140 A 60 60 0 0 0 150 140