# 导入OpenCV库
import cv2
# 使用 cv2中的读取图片函数读取图片
img = cv2.imread('images/bird.jpg')
# 创建显示窗口
cv2.namedWindow("show")
# 显示图像
cv2.imshow("show",img)
# 等待键盘key
key = cv2.waitKey()

在这里插入图片描述

1.图像的类型

(1)二值图像(Binary Image)

每个像素只有两个可能的值,通常是0(黑色)和255(白色),用于表示黑白图像或经过阈值处理后的图像,通常用于形态学操作、边缘检测等。

(2)灰度图像(Grayscale Image)

每个像素有一个值,通常在0(黑色)到255(白色)之间,这个值表示像素的亮度,不包含颜色信息,灰度图像在需要颜色信息但计算资源有限时很有用。最小值为0:纯黑;最大值为255:纯白;中间值为灰色。

(3)彩色图像(RGB图像)

RGB图像有三个值R,G,B,每一份值都在0-255之间,在OpenCV里通道顺序为:BGR(4,252,234))。RGB图像提供了丰富的视觉信息,适用于各种计算机视觉任务。

2.图像的坐标系表示方法

(1)坐标系

OpenCV的坐标系原点(0,0)是图片的左上角点,坐标系的X轴为图像矩形的上水平线,从左往右;Y轴为图像矩形的左垂直线,从上到下。Point(x, y)第一个参数x代表的是元素所在图像的列数cols; 第二个参数y代表的是元素所在图像的行数rows。

(2)坐标表示

原点(0,0),(x,y)坐标点,x表示水平方向上的位置,

y表示垂直方向上的位置。

在这里插入图片描述

3.读取图像函数:cv2.imread()

作用:实现图像的读取。

语法格式: cv2.imread(filename, flag)

filename:要读取的图像目录和名称;

flags:指定以何种方式加载图片,有三个取值:

cv2.IMREAD_COLOR:读取一副彩色图片,图片的透明度会被忽略,默认为该值,实际取值为 1;

cv2.IMREAD_GRAYSCALE:以灰度模式读取一张图片,实际取值为 0;

cv2.IMREAD_UNCHANGED:加载一副彩色图像,透明度不会被忽略。

代码示例:img = cv2.imread(“D:\car.jpg”,cv2.IMREAD_UNCHANGED) ,加载保存在D盘下的图片car.jpg,加载方式为彩色图像,透明度不会被忽略。

# 导入OpenCV库
import cv2
# 使用 cv2中的读取图片函数读取图片
img = cv2.imread('images/bird.jpg',cv2.IMREAD_GRAYSCALE)

# print(img)
# <class 'numpy.ndarray'>
print(type(img))
# uint8
print(img.dtype)

# 创建显示窗口
cv2.namedWindow("show")
# 显示图像
cv2.imshow("show",img)
# 等待键盘key
key = cv2.waitKey()

运行代码:

在这里插入图片描述

4.创建窗口函数:cv2.namedWindow()

作用:创建显示计算机视觉对象的窗口。

语法格式: cv2.namedWindow(window_name)

window_name 为新建窗口的名称。

代码示例:cv2.namedWindow(“show”)创建名称为show的窗口。

5.显示图片函数:cv2.imshow()

作用:实现窗口的显示;

语法格式: cv2.imshow(window_name, mat)

window_name:新建窗口的名称;

mat:一个图片矩阵,numpy.ndarray 类型。

cv2.imshow(“show”, img)在名称为show的窗口显示img对象。

6.设置显示时长函数:cv2.waitKey()

作用:实现设置显示时长,不断刷新图像 , 频率时间为delay , 单位为ms ,返回值为当前键盘按键值;

语法格式: cv2.waitKey([time])

time:可选参数,窗口显示的时间。

代码示例:c=cv2.waitKey(1000), 使程序暂停 1 秒钟。

c=cv2.waitKey(0)等待无限时间,用户按下任意键才会退出。

7.实例:

```python
# 导入OpenCV库
import cv2
# 使用 cv2中的读取图片函数读取图片
img = cv2.imread('images/bird.jpg',cv2.IMREAD_GRAYSCALE)

# 创建显示窗口
cv2.namedWindow("show")
# 显示图像
cv2.imshow("show",img)
# 等待键盘key
key = cv2.waitKey(0)

# 按下s键保存图片
if key == ord("s"):
    print("保存图片")
    cv2.imwrite("images/bird.png",img)
# 按下q键退出
elif key == ord("q"):
    cv2.destroyAllWindows()
    exit()


rd("s"):
    print("保存图片")
    cv2.imwrite("images/bird.png",img)
# 按下q键退出
elif key == ord("q"):
    cv2.destroyAllWindows()
    exit()

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐