我们都知道,OpenCV能够帮助我们处理视频和图像,咱们在图像处理中,除了Pillow库之外,最经常用到的也是它了。那么现在咱们就正式入坑OpenCV for Python,一起来感受一下OpenCV的魅力吧!
读取图像 imread()
OpenCv提供了一种cv2.imread的方法来读取图像。记忆方法也很简单image+read=imgread。我们可以使用这个函数读取多种静态图像。
一般来说,我们在括号内加入我们所要读取图片的地址就可以了。这个地址既可以是计算机的绝对地址,也可以是相对于咱们程序所在地的相对地址。
除此之外呢,我们还有一个可选的参数,对于普通的开发者来说,平时一般并不会用到这样的参数传入。那么这里咱们就简单介绍几个,详细内容大家可以看看OpenCV官网。
-
cv2.IMREAD_UNCHAGE
顾名思义,这个参数就是咱们保持图像原格式不变,它所对应的数值是-1,也就是说,在传参的时候,我们既可以传上面的那么一大串英文字母,也可以传-1这个值。我们要注意的是,当我们不传参的时候,OpenCV会直接将我们的图片调整成为3通道的BGR图像BGR通常是指一种颜色表示方式,即以蓝色(Blue)、绿色(Green)、红色(Red)的顺序来描述图像或像素的颜色值。在计算机图形学、计算机视觉、数字图像处理等领域常常使用BGR表示颜色,也是OpenCV等计算机视觉库中默认的颜色表示方式。
如果我们是在OpenCV中处理的话,出于对兼容性和实现的方便考虑,咱们使用BGR的图像可能会更方便一些。
-
cv2.IMREAD_GRAYSCALE
在使用程序时,我们可能会要对图片进行灰度处理。灰度处理是将彩色图像转为灰度图像的过程。灰度图像只有一个通道,代表亮度信息,而彩色图像有3个通道,分别代表红、绿、蓝三种颜色,每种颜色的亮度信息不同。那么我们也可以使用数值0传入。灰度处理的意义主要有以下几点:
-
简化图像:把彩色图像转为灰度图像,可以降低图像的复杂度,减少计算量,方便后续算法的实现。
-
分析物体:对于一些物体的特征,如纹理、形状、边缘等,可以通过灰度图像来提取和分析,比如在图像识别、目标跟踪、行人检测等方面被广泛应用。
-
去除噪声:在一些图像处理任务中,如图像增强、去噪等,通过灰度处理可以更好地去除图像的噪声,从而提高图像质量。
也就是说,我们只需要几行代码就能完成灰度值的一个转换。
import cv2 img = cv2.imread("./1234.jpg",0) cv2.imwrite("test.jpg",img)
-