本文为 AI 研习社编译的技术博客,原标题 :
OpenCV-Python Cheat Sheet: From Importing Images to Face Detection
作者 |Salma Ghoneim
翻译 | linlh、肯恩 阿瑟 编辑 | 王立鱼
https://heartbeat.fritz.ai/opencv-python-cheat-sheet-from-importing-images-to-face-detection-52919da36433
什么是OpenCV-Python?
OpenCV是一个计算机视觉和机器学习的开源库。拥有2500+个优化算法——一套非常全面的既经典又最先进的计算机视觉和机器学习算法的集合,具备很多接口,包括Python,Java,C++和Matlab。
这次,让我们来攻克Python的接口:
目录:
安装方式
导入/查看图像
裁剪:Cropping
调整:Resizing
旋转:Rotating
灰度和阈值:Grayscaling and Thresholding
模糊/平滑:Blurring/Smoothing
绘制矩形/边界框
画线
在图片上写入文字
人脸识别
轮廓(Contours)——一种物体检测的方法
保存图像
导入图像 & 显示
提醒1:通过OpenCV的种方式读取图像,它不是RGB色域的——而是BGR色域的。有时候这不会是一个问题,只有在你想加入彩色内容到你的图像中的时候会有麻烦。
有两个解决办法:
将R - 1st(红色)与B - 3rd(蓝色)切换,使红色为(0,0,255)而不是(255,0,0)。
改变色域为RGB
然后在你的rgb_image上继续编写代码,而不是在image上。
提醒2:按下任意按键,来关闭显示图像的窗口。如果你使用关闭按钮可以能会导致卡主(在我使用Jupyter Notebook时,有发生这样的情况)
简单起见,整个教程中我会使用下面的方法来显示图像:
图片来源: Pixabay
裁剪:Cropping
裁剪后的狗狗
在图像:image[10:500, 500:2000] 中以(y, x)为起点,裁剪大小为(h, w)的图像: image[y:y+h, x:x+w]
调整大小:Resizing
图像来源: Pexels
调整20%之后
调整大小的函数保持了和原来图像一样的尺寸比。
更多关于图像缩放的函数,查看原文。
旋转:Rotating
上方: 照片来自Pexels的Jonathan Meyer.下方:旋转180度后的狗狗
image.shape输出了图像的高度,宽度和通道数。M是旋转矩阵——根据图像中心旋转180度。-ve按照顺指针方向旋转图像 & +ve 则是按照逆时针方向旋转。
灰度和阈值(黑&白效果)
gray_image是图像的灰度单通道版本。阈值函数将所有阴影变为比127更暗(更小)到0并且所有更亮(更大)到255。
另外一个例子:
这将使所有阴影小于150到10并且全部大于200。