openCV 入门

本文是OpenCV入门的简单介绍,讲解了如何使用OpenCV的imread、namedWindow、imshow、waitKey和destroyWindow等函数来读取、显示、处理图像,并介绍了如何保存图像。通过示例代码展示了在Python中操作图像的基本流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

                                   Open CV 入门

© Fu Xianjun. All Rights Reserved.

                                                            开源的计算机视觉

要运行程序首先要导入CV2模块

import cv2

imread函数:读取图像

retval = cv2.imread(filename[,flags])

retval是返回值,是读取到的图像。

filename表示要读取的图像完整的文件名,包括文件拓展名

flags是读取标记。

namedWindow函数:创建指定名称的窗口

None = cv2.namedWindow(winname)

winname是创建窗口的名称。

imshow函数:显示图像

None = cv2.imshow(winname,mat)

mat是要显示的图像

在窗口内读取图像

import cv2
lena = cv2.imread("lena.bmp")
cv2.namedWindow("lesson")
cv2.imshow("lesson",lena)

 结果:在lesson窗口内显示lena.bmp图像

 下述语句与上述语句功能相同

import cv2
lena = cv2.imread("lena.bmp")
cv2.imshow("lesson",lena)

注意:要确认读取的图像的完整文件名

 waitKey函数:等待按键

retval = cv2.waitKey([delay])

delay是等待键盘触发的时间,单位是ms。

在窗口内显示图像

import cv2
lena = cv2.imread("lena.bmp")
cv2.imshow("demo",lena)
key = cv2.waitKey()
if key==ord('A')
    cv2.imshow("PressA",lena)
elif key==ord('B')
    cv2.imshow("PressB",lena)

结果:按下键盘上的A键或者是B键,就会在新的窗口内显示lena.bmp图像

destroyWindow函数:释放(销毁)指定窗口

None = cv2.destroyWindow(winname)

destroyWindows函数:释放(销毁)所有窗口

None = cv2.destroyAllWindows()

释放指定窗口

import cv2
lena = cv2.imread("lena.bmp")
cv2.imshow("demo",lena)
cv2.waitKey()
cv2.destroyWindow("demo")

结果:在demo窗口内显示lena.bmp图像

释放所有窗口

import cv2
lena = cv2.imread("lena.bmp")
cv2.imshow("demo1",lena)
cv2.imshow("demo2",lena)
cv2.waitKey()
cv2.destroyAllWindows()

结果:在demo1和demo2窗口内都显示lena.bmp图像

imwrite函数:保存图像

retval = cv2.imwrite(filename,img[,params])

img是被保存图像的名称

params是被保存类型参数

读取图像保存到当前目录下

import cv2
lena = cv2.imread("lena.bmp")
r = cv2.imwrite("result.bmp",lena)

结果:读取当前目录下的图像lena.bmp,生成它的副本图像,将该图像以result.bmp名称存储到当前目录下

### OpenCV 基础知识与入门指南 OpenCV 是一个开源计算机视觉库,广泛应用于图像处理、视频捕捉以及机器学习等领域。以下是关于 OpenCV 的基础知识和初学者指南: #### 安装 OpenCV 为了开始使用 OpenCV,需要先安装它。可以通过 Python 包管理工具 pip 来完成安装: ```bash pip install opencv-python ``` 如果还需要额外的支持功能(如优化算法),可以安装扩展包 `opencv-contrib-python`[^1]。 #### 图像读取与显示 OpenCV 提供了多种函数来操作图像数据。例如,通过以下代码可以从文件加载一张图片并将其展示出来: ```python import cv2 image = cv2.imread('path_to_image.jpg') # 加载图像 cv2.imshow('Image', image) # 显示窗口名称为 'Image' cv2.waitKey(0) # 等待按键输入 cv2.destroyAllWindows() # 关闭所有窗口 ``` #### 视频捕获与播放 除了静态图像外,OpenCV 还支持实时视频流的获取与处理。下面是一个简单的例子演示如何打开摄像头并逐帧显示画面: ```python cap = cv2.VideoCapture(0) while True: ret, frame = cap.read() if not ret: break cv2.imshow('Video Stream', frame) key = cv2.waitKey(1) if key & 0xFF == ord('q'): # 当按下 q 键时退出循环 break cap.release() cv2.destroyAllWindows() ``` #### 图像转换与滤波器应用 利用 OpenCV 可以轻松实现各种图像变换效果,比如灰度化、边缘检测等。这里给出一段用于将彩色图转成黑白图再寻找轮廓的例子: ```python gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) # 转换颜色空间至灰色模式 blurred = cv2.GaussianBlur(gray, (5, 5), 0) # 高斯模糊降噪 edges = cv2.Canny(blurred, threshold1=30, threshold2=150) # Canny 边缘探测器 contours, hierarchy = cv2.findContours(edges.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)[-2:] print(f"{len(contours)} contours detected.") ``` 以上仅展示了部分基础功能;随着深入研究,还可以探索更多高级特性,如特征匹配、目标跟踪等等[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值