目录
基础常识:
电脑上图片以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 =

最低0.47元/天 解锁文章
658

被折叠的 条评论
为什么被折叠?



