其他章节请看:webgl系列变换矩阵和动画动画就是不停地将某个东西变换(transform)。例如将三角形不停地旋转就是一个动画和CSStransform类似,变换有三种形式:平移、缩放和旋转。简单的变换用普通表达式容易实现,如果事情复杂,比如旋转后平移,这时就可以使用变换矩阵。普通表达式平移比如要平移一个三角形,只需要将三个顶点移动相同的距离即可(这是一个逐顶点操作)用二维向量表示,就像这样:[x1,y1]+[tx1,ty2]=[x2,y2]比如要实现如下效果:前面我们已经讲过三角形了,这里不再冗余,改动的核心代码如下:constVSHADER_SOURCE=`attributevec4a_
其他章节请看:webgl系列变换矩阵和动画动画就是不停地将某个东西变换(transform)。例如将三角形不停地旋转就是一个动画和CSStransform类似,变换有三种形式:平移、缩放和旋转。简单的变换用普通表达式容易实现,如果事情复杂,比如旋转后平移,这时就可以使用变换矩阵。普通表达式平移比如要平移一个三角形,只需要将三个顶点移动相同的距离即可(这是一个逐顶点操作)用二维向量表示,就像这样:[x1,y1]+[tx1,ty2]=[x2,y2]比如要实现如下效果:前面我们已经讲过三角形了,这里不再冗余,改动的核心代码如下:constVSHADER_SOURCE=`attributevec4a_
早年就接触过小波的概念,那个时候看什么小波十讲这类的,看的可真谓云里雾里,一大堆数学公式,头大的要死。做去噪的时候也看很多人说小波去噪算法效果不错,不过网络上有的都是matlab代码,而matlab的小波包里的函数是已经写好的内嵌函数,是无法看到代码的。因此,一直以来,也从未想过自己动手写个小波去噪之类的效果。 偶尔翻阅了一下GIMP软件的菜单,再次看到了在其Filters-->Enhance菜单下有个wavelet-decompose菜单,点击一下,发现原图像是没有任何增强的效果的,但是在其图层界面里增加了一些列的图层,如下图所示: 后面搜索一些参考资料,大概
早年就接触过小波的概念,那个时候看什么小波十讲这类的,看的可真谓云里雾里,一大堆数学公式,头大的要死。做去噪的时候也看很多人说小波去噪算法效果不错,不过网络上有的都是matlab代码,而matlab的小波包里的函数是已经写好的内嵌函数,是无法看到代码的。因此,一直以来,也从未想过自己动手写个小波去噪之类的效果。 偶尔翻阅了一下GIMP软件的菜单,再次看到了在其Filters-->Enhance菜单下有个wavelet-decompose菜单,点击一下,发现原图像是没有任何增强的效果的,但是在其图层界面里增加了一些列的图层,如下图所示: 后面搜索一些参考资料,大概
上一篇文章谈及了GIMP里实现的小波分解,但是这仅仅是把图像分解为多层的数据,如果快速的获取分解数据以及后续怎么利用这些数据,则是本文的重点。 一、我们先来看看算法速度的优化问题。 原始的GIMP实现需要将图像数据转换为浮点数后,然后进行各级的模糊和图层混合,这样得到的结果是比较精确的,但是存在两个方面的问题,一个是占用了较多的内存,因为GIMP这个版本的小波分解各层是没有改变数据的尺寸的,因此,如果使用浮点,占用的内存要比字节版本的大四倍,而且和层数有着密切的关系。第二个是浮点的处理还是稍微慢了点,虽然对现在的CPU来说,浮点数更易用SIMD指令集优化。但是如果有更好的数据类型的话,
上一篇文章谈及了GIMP里实现的小波分解,但是这仅仅是把图像分解为多层的数据,如果快速的获取分解数据以及后续怎么利用这些数据,则是本文的重点。 一、我们先来看看算法速度的优化问题。 原始的GIMP实现需要将图像数据转换为浮点数后,然后进行各级的模糊和图层混合,这样得到的结果是比较精确的,但是存在两个方面的问题,一个是占用了较多的内存,因为GIMP这个版本的小波分解各层是没有改变数据的尺寸的,因此,如果使用浮点,占用的内存要比字节版本的大四倍,而且和层数有着密切的关系。第二个是浮点的处理还是稍微慢了点,虽然对现在的CPU来说,浮点数更易用SIMD指令集优化。但是如果有更好的数据类型的话,
前言说到矩阵变换,我们第一时间想到的就是大学时代的线性代数这些复杂的东西,突然有了一种令人从入门到放弃的念头,不慌,作为了一个应用层的CV工程师,在实际应用中线性代数哪些复杂的计算根本不用我们自己去算,绝大部分情境下直接使用Matrix这个类或者glm这个库即可。关于矩阵与向量的相关知识,矩阵的加减乘除等规则,这里就不展开细说,感兴趣的同学自行查阅线性代数即可,不过这些规则忘记了也没关系,反正有API可用。我们知道在Opengl中有很多中坐标系,在Opengl中矩阵的一大作用就是将坐标从一个坐标系转换到另一个坐标系下,同时还可以通过矩阵实现一些形变的效果,今天我们就使用矩阵的方式搭配Openg
前言说到矩阵变换,我们第一时间想到的就是大学时代的线性代数这些复杂的东西,突然有了一种令人从入门到放弃的念头,不慌,作为了一个应用层的CV工程师,在实际应用中线性代数哪些复杂的计算根本不用我们自己去算,绝大部分情境下直接使用Matrix这个类或者glm这个库即可。关于矩阵与向量的相关知识,矩阵的加减乘除等规则,这里就不展开细说,感兴趣的同学自行查阅线性代数即可,不过这些规则忘记了也没关系,反正有API可用。我们知道在Opengl中有很多中坐标系,在Opengl中矩阵的一大作用就是将坐标从一个坐标系转换到另一个坐标系下,同时还可以通过矩阵实现一些形变的效果,今天我们就使用矩阵的方式搭配Openg
前言说到矩阵变换,我们第一时间想到的就是大学时代的线性代数这些复杂的东西,突然有了一种令人从入门到放弃的念头,不慌,作为了一个应用层的CV工程师,在实际应用中线性代数哪些复杂的计算根本不用我们自己去算,绝大部分情境下直接使用Matrix这个类或者glm这个库即可。关于矩阵与向量的相关知识,矩阵的加减乘除等规则,这里就不展开细说,感兴趣的同学自行查阅线性代数即可,不过这些规则忘记了也没关系,反正有API可用。我们知道在Opengl中有很多中坐标系,在Opengl中矩阵的一大作用就是将坐标从一个坐标系转换到另一个坐标系下,同时还可以通过矩阵实现一些形变的效果,今天我们就使用矩阵的方式搭配Openg
前言说到矩阵变换,我们第一时间想到的就是大学时代的线性代数这些复杂的东西,突然有了一种令人从入门到放弃的念头,不慌,作为了一个应用层的CV工程师,在实际应用中线性代数哪些复杂的计算根本不用我们自己去算,绝大部分情境下直接使用Matrix这个类或者glm这个库即可。关于矩阵与向量的相关知识,矩阵的加减乘除等规则,这里就不展开细说,感兴趣的同学自行查阅线性代数即可,不过这些规则忘记了也没关系,反正有API可用。我们知道在Opengl中有很多中坐标系,在Opengl中矩阵的一大作用就是将坐标从一个坐标系转换到另一个坐标系下,同时还可以通过矩阵实现一些形变的效果,今天我们就使用矩阵的方式搭配Openg