CV库简介和函数说明

目录

简介

在Python中,CV(Computer Vision,计算机视觉)库是一组用于处理图像和视频的工具和函数的集合。这些库允许开发者进行图像处理、特征提取、对象检测、图像识别等任务。其中最常用的CV库之一是OpenCV(Open Source Computer Vision Library),它是一个开源的跨平台计算机视觉库,提供了丰富的图像处理和计算机视觉算法,可以在Python、C++、Java等语言中使用。

OpenCV提供了各种功能,包括但不限于:

  • 图像加载和保存
  • 图像处理和增强(如滤波、边缘检测、色彩转换等)
  • 物体检测和跟踪
  • 特征提取和描述符匹配
  • 人脸识别和人脸检测
  • 相机标定和图像校正
  • 图像分割和对象分析

常用函数说明

存读取

cv2.imread()

filename:要读取的图像文件的路径。

flags:可选参数,用于指定图像读取的模式。常用的标志包括:

cv2.IMREAD_COLOR:加载彩色图像。图像的透明度将被忽略,即使图像文件包含 alpha 通道,也会被忽略。这是默认模式。

cv2.IMREAD_GRAYSCALE:以灰度模式加载图像。

cv2.IMREAD_UNCHANGED:加载图像的 alpha 通道。如果图像文件包含 alpha 通道,则该通道将被加载。

示例用法:

python 复制代码
import cv2

# 读取彩色图像
color_image = cv2.imread('image.jpg', cv2.IMREAD_COLOR)

# 读取灰度图像
gray_image = cv2.imread('image.jpg', cv2.IMREAD_GRAYSCALE)

# 读取包含 alpha 通道的图像
alpha_image = cv2.imread('image.png', cv2.IMREAD_UNCHANGED)

cv2.imshow()

winname:窗口的名称,用于标识显示图像的窗口。如果指定的窗口不存在,则会创建一个新窗口并显示图像。如果存在具有相同名称的窗口,则会在该窗口中显示新图像。

mat:要显示的图像矩阵(即图像数据)。这通常是使用 cv2.imread 函数读取的图像,或者是通过其他方式生成的图像矩阵。

python 复制代码
import cv2

# 读取图像
image = cv2.imread('image.jpg')

# 显示图像
cv2.imshow('Image', image)

# 等待用户按下任意键盘键,然后关闭窗口
cv2.waitKey(0)
cv2.destroyAllWindows()

注意事项:

使用 cv2.imshow 函数显示图像时,图像会在一个新的窗口中显示出来。您可以通过指定窗口名称来管理窗口,以便在同一个窗口中显示不同的图像,或者关闭窗口等。

在显示图像之后,通常会调用 cv2.waitKey 函数等待用户按下键盘键。在等待期间,窗口将保持打开状态。一旦用户按下键盘键,窗口将关闭。

在调用 cv2.destroyAllWindows 之前,可以使用 cv2.destroyWindow(winname) 关闭特定的窗口。

图像调整

cv2.resize()

cv2.resize 是 OpenCV 库中的一个函数,用于调整图像的大小。该函数的语法如下:

python 复制代码
dst = cv2.resize(src, dsize[, dst[, fx[, fy[, interpolation]]]])

src:原始图像,即待调整大小的图像。

dsize:输出图像的大小,可以是输出图像的宽度和高度的元组 (width, height),也可以是整数 width 和 height。

dst:输出图像,可选参数。如果指定了此参数,函数将结果写入到此变量中。

fx:水平方向上的缩放比例,可选参数。如果未指定 dsize,则根据 fx 和 fy 来调整输出图像的大小。

fy:垂直方向上的缩放比例,可选参数。如果未指定 dsize,则根据 fx 和 fy 来调整输出图像的大小。

interpolation:插值方法,可选参数。用于调整图像大小时对像素值的处理方式。常用的插值方法包括:

cv2.INTER_NEAREST:最近邻插值。

cv2.INTER_LINEAR:双线性插值(默认)。

cv2.INTER_CUBIC:双三次插值。

cv2.INTER_AREA:区域插值。

示例用法:

python 复制代码
import cv2

# 读取图像
image = cv2.imread('image.jpg')

# 调整大小为新的宽度和高度
new_width = 300
new_height = 200
resized_image = cv2.resize(image, (new_width, new_height))

# 或者,按照缩放比例调整大小
scale_factor = 0.5
resized_image = cv2.resize(image, None, fx=scale_factor, fy=scale_factor, interpolation=cv2.INTER_LINEAR)

# 显示调整大小后的图像
cv2.imshow('Resized Image', resized_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

这个函数在图像处理中非常常用,例如在预处理阶段调整输入图像的大小以适应模型的输入要求,或者在图像显示中调整图像大小以适应屏幕大小等。

相关推荐
H03111698519 分钟前
App竞品数据查询工具整理 月狐数据 蝉大师 点点数据功能概览
人工智能
叠层归一研究院1 小时前
基于极限自指的叠层归一宇宙结构理论——无元外部封闭系统的内生区分模型
人工智能·经验分享·算法·agi
IT_陈寒1 小时前
Java线程池用错参数,我的服务居然悄悄崩溃了
前端·人工智能·后端
why-geo1 小时前
Hermes Agent 与 Python 的会产生什么样的碰撞
人工智能·python·ai编程
正经教主1 小时前
【FDE系列】阶段2:Day 29:FastAPI 进阶 — Pydantic 模型与完整 CRUD 实战
人工智能·python·fde
时速GEO系统1 小时前
初元 AI V1.1 版本升级,首个正式版发布一周・实现生成、部署、上线、优化全流程自动化闭环
人工智能·数据挖掘·node.js
咕泡科技1 小时前
咕泡科技FDE系列最新产品重磅发布!
人工智能·大模型·ai落地·fde·前沿部署工程师
犀利豆2 小时前
为什么全世界的 AI 都画不好一只骑自行车的鹈鹕
人工智能·llm·aigc
天天被压力2 小时前
【跨市场数据实战 #08】可转债折价机会怎么筛:3个接口抓比价、列表和实时盘口
java·人工智能·python
baopixiaoz2 小时前
BeeQuant × BeeAgent:用AI加速策略验证
大数据·人工智能·python·区块链