经典机器学习,深度学习,当下这些热门的词汇不知不觉在我们学习(diaosi)氛围浓重的大学蔓延开来,作为与计算机专业毫不相干的,指挥摁下开机键,点开穿越火线娴熟地操作wasd的我而言,当周围人讨论opencv,tensorflow,sklearn这些玄幻词汇时,听得我是一头雾水。今天,重拾一年前敲击hello world的自信,开启了Python的opencv生涯。
壹 为什么选择python?
作为时下最时尚的python语言,简洁的代码,借助于向军火库一般的各种开源工具包,你可以完成你想做的任何事。数值计算这些numpy,scipy,数据分析工具pandas,可视化matplotlib,可以使得非计算机工科生甚至文科生轻松上手,爬取处理数据。作为胶水语言的python在opencv上的应用不仅简单方便编写代码,其运行速度有时甚至优于c++等,让你更加专注于目标而不是语法结构。最重要的是,如果你已经下载过了anaconda python,安装opencv只需要一行代码就可完成!
贰 掌握anaconda和安装opencv
anaconda是用于科学计算的免费的python版本。可以在官网上下载anaconda,https://www.anaconda.com/,选择windows还是linux或是苹果的mac os。看清楚32位还是64位便可以下载。不过,下载数小时,经常下载不成功是常事。这时候,强烈建议逛一逛清华或者中科大的镜像站,下载变成分分钟的事。
opencv的安装:在网页上下载好对应版本的.whl文件后,打开你电脑的命令行,pip install一下就ok了。
叁 常见图片的格式
作为图像处理,那就需要知道常见的图片格式有哪些。
比较老的有bmp格式,bmp格式无损及没有压缩像素,但麻烦的是图片的体积偏大。
接着是jpg格式或者是jpeg格式,这是有损压缩的模式,将像素信息用jpeg保存成文件再读取出来。这个是我比较常处理的,用最少的磁盘空间得到最好的图片质量。
还有是png格式,是一种无损压缩模式,用的是行程编码算法,相比jpeg,更加适合存储几何特征比较强的图片。
我们在空间搞笑图片中常看见的GIF格式图片,是多帧图像的集合。我们处理读取时也要一帧一帧读。通过调节参数也可以控制显示快慢。
我们常说的黑白图像,在计算机中有两种。一种是位图模式,是真真切切的非黑即白,这种图像只有一位深度:0就是纯黑,1就是纯白。
还有一种图像叫灰度图像,在生活中我们常把灰度图像作为黑白图像。事实上,灰度图像有8位深度,(0,0,0,0,0,0,0,0)是纯黑,(1,1,1,1,1,1,1,1)是纯白,其余介于1至255之间的就是不同深度的灰度图像。
彩色图像就是RGB图像,顾名思义,RED,GREEN,BLUE,这三种色彩叠加组合可以构成我们人眼看到的任何颜色,在计算机处理彩色图像时,也是通过红绿蓝三个通道来进行,每个通道又各有八个深度,由此,我们知道,理论上计算机可以构成256的三次方种颜色!
肆 色彩空间转换
hsv颜色模型更接近人感觉颜色的方式,H是色相,S是饱和度,V是亮度。
lab色彩空间:L:整张图的亮度,a和b表示颜色多少,用于编码颜色。
opencv提供了上百种颜色空间转换方法,opencv做转化时,用到了cvtColor函数。
该函数用两个参数足以,第一个是图像名称,第二个是转换方式。
例如,我已经读入一个函数,
img = cv2.imread(path,way),
其中path是路径,way是读入方式,灰度图,彩色图还是加载alpha通道。
接着, gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) 这就完成了彩色图像与灰度图像之间的转化。
其中,cv2.COLOR_BGR2GRAY这个方式,如果转化后还想要csv,就cv2.COLOR_BGR2CSV,如果想变更通道顺序,那么cv2.COLOR_BGR2RGB就可以了,很好玩。
图像缩放用cv2.resize函数,例如变成400*400像素记得写成cv2.resize(img,(400,400))。同样如果想x方向缩小直接fx=0.5即可。
此外,图像反转,图像保存,阈值化处理等也被opencv包装成了函数,用起来也十分方便。
编辑:lyn
-
OpenCV
+关注
关注
31文章
634浏览量
41333 -
python
+关注
关注
56文章
4792浏览量
84619
原文标题:浅浅浅浅谈opencv
文章出处:【微信号:zhuyandz,微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论