目录
opencv 简单函数的功能,参数,返回值
1.cv2.imread()
2.cv2.imshow()
3.cv2.waitKey()
4.cv2.imwrite()
5.cv2.sekectROI()
6.cv2.VideoCapture()
7.cv2.cvtColor()
8.cv2.threshold()
OTSU阈值法
opencv 简单函数的功能,参数,返回值
1.cv2.imread()
功能 | 读取指定路径的图像文件,并将其解码为NumPy数组(BGR格式或灰度)。 |
主要参数 | 1. filename : 图像路径(字符串)。2. flags : 读取模式,如cv2.IMREAD_COLOR (默认,BGR三通道)、cv2.IMREAD_GRAYSCALE (灰度)、cv2.IMREAD_UNCHANGED (包含Alpha通道)。 |
返回值 | 成功时返回numpy.ndarray (图像数据),失败时返回None 。 |
注意:OpenCV默认使用BGR通道顺序(非RGB),处理时需注意转换。
2.cv2.imshow()
功能 | 在指定窗口中显示图像(窗口自动调整大小或按需创建)。 |
参数 | 1. winname : 窗口名称(字符串)。2. mat : 要显示的图像(numpy.ndarray ,BGR或灰度格式)。 |
返回值 | 无(None )。 |
注意:
-
需配合
cv2.waitKey()
使用(否则窗口会瞬间关闭)。 -
窗口名称重复时,会覆盖之前的内容。
-
图像数据应为
uint8
类型(值范围 0~255)。
3.cv2.waitKey()
功能 | 等待键盘输入,并返回按键的ASCII值(用于控制图像窗口显示)。 |
参数 | delay :等待时间(毫秒)。- 0 :无限等待。- >0 :等待指定时间后继续执行。 |
返回值 | 按键的ASCII值(int ),超时未按键则返回 -1 。 |
4.cv2.imwrite()
功能 | 将图像数据(NumPy 数组)保存为指定格式的文件(如 JPEG、PNG 等)。 |
参数 | 1. filename :保存路径(含扩展名,如 "image.jpg" )。2. img :要保存的图像数据(numpy.ndarray ,BGR 或灰度格式)。3. params (可选):编码参数(如 JPEG 质量 [cv2.IMWRITE_JPEG_QUALITY, 90] )。 |
返回值 | bool :成功返回 True ,失败返回 False (如路径无效或权限不足)。 |
注意:
-
默认保存为 BGR 顺序(与
cv2.imread()
一致)。 -
支持常见格式(
.jpg
、.png
、.bmp
等),扩展名决定编码格式。
5.cv2.sekectROI()
功能 | 在图像上交互式选择矩形区域(ROI,Region of Interest)。 |
参数 | 1. windowName :显示图像的窗口名称。2. img :要选择ROI的图像。3. showCrosshair (可选):是否显示十字准线(默认True )。4. fromCenter (可选):是否从中心开始绘制(默认False )。 |
返回值 | 返回一个元组 (x, y, w, h) ,表示所选区域的左上角坐标、宽度和高度。 |
注意:用户通过鼠标拖拽选择区域,按 Enter/Space 确认或 C 取消。
6.cv2.VideoCapture()
功能 | 从摄像头、视频文件或网络流捕获视频帧。 |
参数 | 1. filename 或 index :- 视频文件路径(如 "video.mp4" )- 摄像头索引(如 0 表示默认摄像头)- RTSP/HTTP 流地址(如 "rtsp://example.com" ) |
返回值 | 返回一个 VideoCapture 对象,需通过方法(如 .read() )获取帧数据。 |
常用方法(需配合返回值使用):
-
.isOpened()
:检查是否成功打开视频源(返回bool
)。 -
.read()
:读取下一帧(返回(bool, numpy.ndarray)
,成功则返回True
+ 帧图像)。 -
.release()
:释放资源。
7.cv2.cvtColor()
功能 | 将图像从一种颜色空间转换为另一种颜色空间(如 BGR↔灰度、BGR↔HSV 等)。 |
参数 | 1. src :输入图像(numpy.ndarray )。2. code :颜色空间转换代码(如 cv2.COLOR_BGR2GRAY )。3. dstCn (可选):输出图像的通道数(默认 0,自动根据 code 确定)。 |
返回值 | 转换后的图像(numpy.ndarray )。 |
常见转换代码:
-
cv2.COLOR_BGR2GRAY
:BGR → 灰度 -
cv2.COLOR_BGR2HSV
:BGR → HSV -
cv2.COLOR_GRAY2BGR
:灰度 → BGR -
cv2.COLOR_BGR2RGB
:BGR → RGB
8.cv2.threshold()
功能 | 对图像进行阈值化处理,将灰度图像转换为二值图像。 |
参数 | 1. src :输入图像(单通道灰度图,numpy.ndarray )。2. thresh :阈值(整数或浮点数)。3. maxval :最大值(当像素值超过阈值时赋予的值)。4. type :阈值化类型(如 cv2.THRESH_BINARY )。 |
返回值 | 1. retval :实际使用的阈值(适用于自适应阈值)。2. dst :阈值化后的图像(numpy.ndarray )。 |
常见阈值化类型:
-
cv2.THRESH_BINARY
:二值化(大于阈值设为maxval
,否则设为 0)。 -
cv2.THRESH_BINARY_INV
:反向二值化。 -
cv2.THRESH_TRUNC
:截断(大于阈值设为阈值,否则不变)。 -
cv2.THRESH_TOZERO
:零处理(大于阈值不变,否则设为 0)。 -
cv2.THRESH_TOZERO_INV
:反向零处理。
OTSU阈值法
-
OTSU是一种基于直方图统计的自适应阈值算法,通过最大化类间方差确定最佳阈值。
-
OpenCV中通过
cv2.THRESH_OTSU
实现,无需手动指定阈值。 -
适合双峰直方图的图像,但对单峰或噪声敏感的图像可能需结合其他方法(如自适应阈值)。