计算机视觉与图像新手的心酸胡扯

我做计算机视觉有半年左右,也是现在现在很火的深度学习。有人说这个是“技术大爆炸”,突然冒出大批人来搞深度学习。但是我现在不想说深度学习,只想说说它的辅助工作-图片处理基础。

我是因为读研才开始基础计算机视觉,之前什么都不懂,是真的什么都不懂。然后实验室还是新开设的这个项目,也就是说,实验室也不会有人来指导我如何做,那时只有老师说要什么东西,我就得自己各种的查找来完成,现在想想还是很苦逼。

开始时连图片是数字组成的都不知道。所以真的是新新手啊。图片是由一个矩阵组成的,这个矩阵可以是一维,三维,四维(我所知道的)。四维图片时RGBA,即red,green,blue,阿尔法值。三维是RGB,但其实如果你用的开源框架caffe,caffe的内部用opencv处理图片,opencv读出来的三维图是BGR。
四维和三维都是彩色图。一维的一般为灰度图,mode是L,但是mode是P时也是一维的,我前几天刚刚接触model为P的图片,它是一维的,但是它却可以有颜色,貌似是因为调色板什么的原因,我一直未有时间着手去搞清楚。如果只是看一个图片的属性是看不出他的mode类型的。用python的image去读一个图片输出它的返回值就可以看到一张图片的组成参数,包括它的mode。

我用python处理图片,它的Image,skimage都可以读一张图片,不过读出来的形式不同,Image读出来的仍然是图片形式,skimage读出来的是矩阵,我的其他文章中有提到它们的不同。image读出来的图片可以转成矩阵,这时就要提到另一个python做数据处理的常用模块—numpy,numpy是一个多维数组【矩阵】。深度学习处理的其实就是图片的真正组成—–矩阵,numpy有很多的方法,所以会常常用到它,它的花式索引,广
播计算等等使用时都非常方便。numpy和image之间可以互相转化。image自己本身就有很多便利的可以对图片进行转化灰度图【一维】和切割旋转等的方法,但是如果需要逐像素对图片进行处理就可以选择转成numpy后处理。

图片的展示以及训练结果数据的展示如果可以通过图片显示会更加的明显,这时我们就需要python的另一个数据处理常用的模块—matplotlib,它有很多办法可以把你的图片或数据以你想要的方式展示出来,具体可参看官网或者我的另一篇文章有稍微讲了一些常用的办法。

所以如果你是新手,而且是没有人带什么都不懂的新手,你用python处理图片时请参看,Image,skimage,numpy,matplotlib。

文章作者:Lily

原始链接:/2017/05/11/%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%A7%86%E8%A7%89%E4%B8%8E%E5%9B%BE%E5%83%8F%E6%96%B0%E6%89%8B%E7%9A%84%E5%BF%83%E9%85%B8%E8%83%A1%E6%89%AF/

版权说明:转载请保留原文链接及作者。