目录
一、颜色变换cvtColor:
cv2.cvtColor
是 OpenCV 库中的一个函数,用于转换图像的颜色空间。
(1)函数原型:
cv2.cvtColor(src, code[, dst[, mask]])
(2)参数:
- src: 输入图像。
- code: 指定转换的颜色空间。这是一个整数,表示从一种颜色空间转换到另一种颜色空间的代码。
- dst: (可选)输出图像。如果提供,必须与源图像具有相同的尺寸和类型。
- mask: (可选)操作的可选掩码。如果提供,它必须是8位的单通道图像,大小与源图像相同。
(3)作用:
cv2.cvtColor
函数用于将图像从一个颜色空间转换到另一个颜色空间。例如,它可以将图像从 BGR 转换为灰度、RGB、HSV 等。
(4)颜色空间转换代码:
一些常用的颜色空间转换代码:
cv2.COLOR_BGR2BGRA
: BGR 到 BGRA 转换。cv2.COLOR_BGR2GRAY
: BGR 到灰度转换。cv2.COLOR_BGR2RGB
: BGR 到 RGB 转换。cv2.COLOR_BGR2RGBA
: BGR 到 RGBA 转换。cv2.COLOR_BGR2HSV
: BGR 到 HSV 转换。cv2.COLOR_BGR2Lab
: BGR 到 CIELAB 转换。cv2.COLOR_BGR2Luv
: BGR 到 CIE Luv 转换。cv2.COLOR_BGR2YUV
: BGR 到 YUV 转换。cv2.COLOR_RGB2GRAY
: RGB 到灰度转换。cv2.COLOR_RGB2YUV
: RGB 到 YUV 转换。cv2.COLOR_GRAY2BGR
: 灰度到 BGR 转换。cv2.COLOR_GRAY2RGB
: 灰度到 RGB 转换。
(5)示例:
使用 cv2.cvtColor
函数的示例代码:
import cv2
# 读取一个 BGR 图像
image = cv2.imread("C:\\Users\\86173\\Desktop\\TI\\faves.png")
# 将 BGR 图像转换为灰度图像
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# 将 BGR 图像转换为 HSV 图像
hsv_image = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
# 显示灰度图像
cv2.imshow('Gray Image', gray_image)
#cv2.waitKey(0)
# 显示 HSV 图像
cv2.imshow('HSV Image', hsv_image)
cv2.waitKey(0)
cv2.destroyAllWindows()()
二、画基本图形:
在 OpenCV 中,可以使用多种函数来绘制基本图形,如线条、矩形、圆形、多边形等。
(1)画线条:
cv2.line
函数用于在图像上绘制线条。
函数原型:
cv2.line(img, pt1, pt2, color[, thickness[, lineType[, shift]]])
- img: 输入图像。
- pt1: 线条的起点。
- pt2: 线条的终点。
- color: 线条的颜色。
- thickness: 线条的厚度(默认为 1)。
- lineType: 线条的类型,如
cv2.LINE_4
、cv2.LINE_8
(默认)。 - shift: 坐标点的小数点位数。
示例代码:
import cv2
import numpy as np
# 创建一个黑色背景的图像
image = np.zeros((400, 400, 3), dtype=np.uint8)
# 画一条蓝色线条
cv2.line(image, (50, 50), (300, 300), (255, 0, 0), 3)
# 显示图像
cv2.imshow('Line Image', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
(2)画矩形:
cv2.rectangle
函数用于在图像上绘制矩形。
函数原型:
cv2.rectangle(img, pt1, pt2, color[, thickness[, lineType[, shift]]])
- pt1: 矩形的一个角点。
- pt2: 矩形对角的点。
示例代码:
# 创建一个黑色背景的图像
image = np.zeros((400, 400, 3), dtype=np.uint8)
# 画一个绿色矩形
cv2.rectangle(image, (50, 50), (300, 300), (0, 255, 0), 3)
# 显示图像
cv2.imshow('Rectangle Image', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
(3)画圆形:
cv2.circle
函数用于在图像上绘制圆形。
函数原型:
cv2.circle(img, center, radius, color[, thickness[, lineType[, shift]]])
- center: 圆心的坐标。
- radius: 圆的半径。
- color: 圆的颜色。
示例代码:
# 创建一个黑色背景的图像
image =