opencv+python入门知识之一(概述以及依次读取多个图像、显示图像、图像分类)

        OpenCV的架构如下图所示: 最核心的是 Image Process  部分,也是最主要的学习部分。学完这个之后再学习

2D Feature   和 Object Detection,最后学习Video Analysis。其他的模块用到的时候再学。

opencv+python入门知识之一(概述以及依次读取多个图像、显示图像、图像分类)_第1张图片

1.导入opencv库

    import cv2

2.读入图像

    通过cv2.imread(路径,控制参数)实现,控制参数主要有三种:0--灰度图读入;1--彩色图读入;cv.IMREAD_UNCHANGED--原格式读入。

注意:有时即使路径、文件名、格式都是对的,也会发生读取失败的现象,这时有一种解决办法是在路径前面加一个转义字符r'

例如:

img = cv2.imread(r'F:\python\work\cv_learn\3.png',1)

 有时我们可能会要求处理很多图片,一个一个读取难免有些太麻烦,下面是我的一种解决方案:

 首先建立一个文件夹,将需要读取的图片都放进去,然后通过os.listdir(‘文件目录’)读取该文件夹目录下的所有图片的名字,然后通过字符串连接将图片的完整路径加进去,再读取处理即可。

import os


for filename in os.listdir(r"F:/openCV/edge_detection"):              #listdir的参数是文件夹的路径
	filenames = 'F:/openCV/edge_detection/'+filename
	print(filenames)
	img = cv2.imread(filenames,1)

3.显示图像

    (1)通过cv2.imshow('name',src)函数来实现显示,src指的是source,即源图像,要输入的图像。

    (2)用cv2.waitKey([delay])函数来保持显示。其中delay>0时,表示保持delay毫秒;delay=0时,表示一直保持;delay<0时,表示等待鼠标单击;

1-3代码演示(很简单)

import cv2
img = cv2.imread('F:\python\work\cv_learn\lena.jpg',cv2.IMREAD_UNCHANGED)#不改变图像格式
cv2.imshow('result',img)#显示图像
cv2.waitKey(0)#保持图像

效果如下(标题为imread()的参数):

opencv+python入门知识之一(概述以及依次读取多个图像、显示图像、图像分类)_第2张图片opencv+python入门知识之一(概述以及依次读取多个图像、显示图像、图像分类)_第3张图片

4.图像分类

    常见的有二值图、灰度图、RGB和HSV色彩空间。

    其中灰度图的范围一般为[0,255],0表示纯黑,255表示纯白。

    在opencv中RGB的三色的顺序为BGR,在进行分解和合成图像时要注意。

    所谓的RGB转灰度图即将BGR三种色彩按不同的权重计算出灰度图的像素,这种计算是线性的,也是可逆的。

    HSV色彩空间即亮度、饱和度和色相,详细知识在后面博文中有详细介绍。

 

 

 

你可能感兴趣的:(opencv+python)