python-OpenCV基础

目录

基础常识:

一、OpenCV图片函数

1.cv2.imread()读入图片

2.cv2.imshow()显示图片

3.cv2.imwrite()保存图片

二、OpenCV摄像头有关函数

1.打开摄像头

2.获取、改变摄像头属性

3.播放本地视频:

三、图像的基本操作

1.获取和修改像素值:

2.获取图片的属性

img.shape、img.dtype、img.size

3.ROI(截图)

四、颜色的空间转换

1.颜色空间转换

2.对特定颜色物体追踪

五、阙值分割---两类值

1.固定阙值分割

2.自适应阙值

六、图像几何变换

1.缩放图片

2.镜像反转图片

3.平移图片

4.旋转图片

七、绘画功能

1.画线

2.画矩形

3.画圆

4.画椭圆

5.画多边形


基础常识:

电脑上图片以RGB颜色模式显示,在opencv中以B-G-R通道顺序存储的,灰度图只是一个通道

一、OpenCV图片函数

1.cv2.imread()读入图片

import cv2
img = cv2.imread("l.jpg",0)
#参数1:图片路径;若图片放在当前文件夹下,直接"l.jpg",否则需要给出绝对路径,如'D:\OpenCVSamples\lena.jpg'
#参数2:读入方式;彩色图:1;灰度图:0;包含透明通道的彩色图:-1

2.cv2.imshow()显示图片

cv2.imshow("lena",img)
#参数1:窗口名字
#参数2:要显示的图片,在上一步读入图片中已经完成
cv2.waitKey(0)#让程序暂停
#参数:程序暂停时间,时间一到,会继续执行接下来的程序
#传入0表示一直等待

 当图片比较大时,先用cv2.namedWindow()创建一个窗口,之后再显示图片:

cv2.namedWindow("lena2",cv2.WINDOW_NORMAL)
#参数1:窗口名字
#参数2:默认值,表示窗口大小自适应图片
cv2.imshow("lena2",img)
cv2.waitKey(0)

3.cv2.imwrite()保存图片

cv2.imwrite("lena_gray.jpg",img)
#参数1:包括后缀名的文件名
#参数2:需要保存的图片

二、OpenCV摄像头有关函数

1.打开摄像头

import cv2

capture = cv2.VideoCapture(0)
#0表示摄像头的编号,如果电脑上有两个摄像头,访问第二个摄像头就可以传入1,以此类推

while True:
    ret,frame = capture.read()#获取一帧
    #ret是一个布尔值,表示当前这一帧是否获取正确
    #frame为这一帧的图
    
    #cv2.cvtColor()用来转换颜色,这里将彩色图转成灰度图。
    gray = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)
    
    #显示图片
    #参数1:窗口名称;参数2:要显示的图片
    cv2.imshow("frame",gray)
    if cv2.waitKey(1) == ord("q"):
        break
    
    

2.获取、改变摄像头属性

使用cap.get(propId),参数为0~18的数字,代表不同的属性

width,height = capture.get(3),capture.get(4)
#获取捕获的分辨率
print(width,height)

#修改参数
capture.set(cv2.CAP_PROP_FRAME_WIDTH,width*2)
capture.set(cv2.CAP_PROP_FRAME_WIDTH,height*2)

3.播放本地视频:

跟打开摄像头一样,如果把摄像头的编号换成视频的路径就可以播放本地视频了。回想一下cv2.waitKey(),它的参数表示暂停时间,所以这个值越大,视频播放速度越慢,反之,播放速度越快,通常设置为 25 或 30。

#播放本地视频
capture = cv2.VideoCapture("demo_video.mp4")


#使用cv2.VideoCapture()函数完成摄像头的初始化之后,为了防止初始化发生错误,用cv2.VideoCapture.isOpened()函数来检查初始化是否成功。
while(capture.isOpened()):
    ret,frame = capture.read()
    gray = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)


    cv2.imshow("frame",gray)
    if cv2.waitKey(30) == ord("q"):
        break

三、图像的基本操作

1.获取和修改像素值:

#读入一张图片
import cv2
img = cv2.imrad("lena.jpg")
#参数存放,图片的地址

px = img[100,90]#里面的数是图片的行列坐标
print(px)

#只获取蓝色blue通道的值
px_blue =
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值