第一讲,opencv对图片的操作,怎么读取图片和显示图片,对图片的其他操作.

需要掌握的:

1、熟悉对opencv的安装

2、掌握图片、视频的导入

3、掌握对图片、视频的处理

4、了解对图片和视频处理的命令

1、对图片的操作:

1、读取图片:

  • 一张图片当中会存在很多小区域,每个区域表示一个像素点,计算机当中就是由这些像素点构成一张图的,一个像素点(0—255:表示一个亮度,0就是比较黑,255就非常亮,接近白色)

  • RGB:表示颜色的通道,三颜色通道,而黑白图像没有RGB通道,只有亮度就够了

  • 要让计算机能够正确的读取,需要将图像转换为像素矩阵

代码:

1
2
3
4
5
6
# 导包
import cv2
# 读取图像
img = cv2.imread(r'图片路径')
# 输出图像的数组
print(img)

opencv读取的格式不是一个RGB格式而是一个BGR格式,跟matplotlib.pyplot有点冲突

1
2
3
4
5
6
# 显示图像
cv2.imshow('窗口名称',img)
# 等待时间(即是窗口关闭时间,毫秒级,0表示按任意键终止(注意大小写))
cv2.waitKey(0)
# 当窗口关闭时,所有窗口都关闭
cv2.destoryAllWindows()

在一定情况下可以直接使用定义函数:

1
2
3
4
def cv_show(name,img):
cv2.imshow(name,img)
cv2.waitKey(0)
cv2.destroyAllWindows()

2、输出图片像素(shape值):

1
print(img.shape)

以上显示的是一个RGB格式的图片(cv2中是BGR),如果需要一个灰色图?

在一些检测任务当中都需要先将图片转换成灰度图再进行操作

3、灰度图操作:

  • 如果需要灰度图像,只需要在读取过程中设置一下参数即可

    1
    cv2.IMREAD_COLOR:彩色图像
    1
    cv2.IMREAD_GRAYSCALE:灰度图像

代码:

1
2
3
4
5
6
7
8
9
10
11
12
# 读取图像
img2 = cv2.imread(r'E:\python_file\img\girl.jpg',cv2.IMREAD_GRAYSCALE)
# 输出图像像素
print(img2.shape)
print(img2)
# 显示图像
cv2.imshow('girl2',img2)
# 等待时间(即窗口关闭时间),毫秒级,0表示任意键终止(注意大小写!!!)
cv2.waitKey(0)
# 当关闭窗口时,所以窗口都关闭
cv2.destroyAllWindows()

3、图像保存:

1
cv2.imwrite(r'E:\python_file\img\girl3.png',img2)

4、底层:

1
2
print(type(img))
print(type(img2))

5、计算像素点的个数:

1
print(img.size)

6、查看图像的类型:

1
2
print(img.dtype)

7、截取部分图像数据:(ROI:)

1
2
3
4
5
6
7
8
#截取部分图像数据
#读取图像:
img = cv2.imread(r'E:\python_file\img\girl.jpg')
girl = img[0:250,50:250]
# 自定义截取区域
# 左边为H,右边是W
cv2.imshow('girl_samll',girl)
cv2.waitKey(0)