Python系列之二——图说OpenCv

opencv的强大无须质疑,前段时间一直在用c++,总感觉怪怪的,就想着换个语言试试看,这不,小詹同学开始尝试Python啦~

上期在windows系统上搭建好python和opencv环境后,这期简单操作下opencv中的基本图像处理,Let‘s go~

一、图像的读取和显示

opencv中的imread、imwrite、imshow等函数是个老生常谈的问题了,python中只要在文件前边import cv2模块即可~

代码如下所示(可滑动,下同):

运行结果如下所示:(在original窗口显示图片)

二、图像类型的检测

图片是由像素组成的,我们可以先检验下读入的图片数据是什么类型数据,长什么样?(其实读入的是数组)

利用type()函数即可查看数据类型

利用sth.shape查看具体信息

得到的结果为:

表示读取的数据为一三维数组,其尺寸大小为500*749(高*宽)。

三、图像上输出文本

图像上输入文本使用以下函数:

cv2.putText(img,text,org,fontFace,fontScale,color)

1.img 表示cv2读入的图片数据

2.test 表示要写入的文本

3.文字在图片中的坐标。坐标原点位于图片左上角。如org=(100,400),从图片最左边起100,从最最上面往下400。

4.字体。如cv2.FONTHERSHEYTRIPLEX、cv2.FONTHERSHEYPLAIN

5.颜色,三原数组,使用RGB模式编码。如白色为(255,255,255)

具体程序代码如下:

运行结果如下图:

四、图像大小调整

图像尺寸大小调整使用以下函数:(这里忽略结果展示啦~)

resize(src, dsize, fx, fy)

1.src 表示输入图片

2.dsize 表示输出图片的大小,如果为dsize为None(或0),程序会默认执 行disze=(fxsrccols,fysrcrows)

3.fx 表示图片水平方向的缩放比例(倍数)

4.fy 表示图片垂直方向的缩放比例(倍数)

五、图像的旋转和镜像

1.图像旋转

利用的是图像仿射变换及其变化矩阵:

getRotationMatrix2D(center, angle, scale)

1.center 旋转中心

2.angle 旋转角度

3.旋转后图像的缩放比例

代码如下所示:(结果也不做展示了~)

2.图像镜像

假设图片是对称的,图片宽度(图片像素列数)为w,选取任意行(这里选第r行)那么图中对称两个点A1、A2,其中A1点坐标(r,w1),注意到数组都是从0开始。A2点必然要满足:

A1[r,w1,:]= A2[r,w-1-w1,:]

所以,实现图像镜像代码为:

以lenno图片为例,镜像操作前后结果如下:

六、图像的平铺

以2*3平铺为例,可以看作是图像对应数组的复制过程,其代码如下:

结果如下所示:

七、图像的灰度转换

灰度化较为简单,不做过多叙述,代码如下:

结果如下所示:

扫一扫关注我们,

更多咨询早知道!

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180314G1HPZ700?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券