在计算机眼中,图像就是由一个个像素点组成,而像素点中,又有三个值( R ,G ,B ),也就是红、绿、蓝三个颜色,即三原色。
故,opencv默认的读取图片的格式是RGB。
一般格式:
import cv2
import matplotlib.pyplot as plt
import numpy as np
img=cv2.imread('C:/Users/hellou/Desktop/zhong.jpg')
"""
引号中加上需要读取的文件位置,后面也可以用 cv.IMREAD_COLOR 以及 cv.IMREAD_GRATSCALE分别表示读取彩色和灰度图像
默认条件下为读取彩色图像
"""
cv2.imshow('image',img)/''代表建立一个窗口,后面代表窗口引用的图片
cv2.waitKey(0)
'''等待时间,毫秒级。waitkey控制着imshow的持续时间,当imshow之后不跟waitkey时,相当于没有给imshow提供时间展示图像,所以只有一个空窗口一闪而过。
添加了waitkey后,哪怕仅仅是cv2.waitkey(1),我们也能截取到一帧的图像。所以cv2.imshow后边是必须要跟cv2.waitkey的。而0代表任意键终止
''
cv2.destroyAllWindows()/清理所有窗口
img.shape() 输出的值(h,w,c)分别代表长、宽和通道
vc = cv2.VideoCapture('C:/Users/hellou/Documents/Tencent Files/1170575902/FileRecv/111.mp4')
'''cv2.VideoCapture()里可以用''放置我们需要读取的视频,也可以用0、1等数字分别代表我们需要的调用的摄像头'''
cap = cv2.VideoCapture(1)
#调用笔记本自带摄像头,参数使用0,调用外置USB摄像头,使用参数1
cap.set(3,640)#宽,参数3为宽度,640为数值
cap.set(4,480)#高,参数4为高度,480为数值
cap.set(10,100)#亮度,参数10为代表的亮度,数值为100
#检查通道是否打开正确
if vc.isOpened():
#vedio.read()一帧一帧的读取
#open得到的是一个布尔值,就是True或者False
#frame得到当前这一帧的图像
open, frame =vc.read()
else:
open = False
while open:
ret, frame = vc.read()
#如果读取到的帧数不为空,那么就继续读取,如果为空就退出
if frame is None:
break
if ret == True:
cv2.imshow('vc', frame)
if cv2.waitKey(10) & 0xFF == 27:
#waitkey可以控制视屏播放的速度,数值越小,播放的越快
#等于27是指按下ESC键即可退出窗口
#也可以用例如'q'来代表按下q键就能退出窗口
break
vc.release()
cv2.destroyAllWindows()
在图像读取过程中,我们也可以截取部分的图像数据(ROI),例如:标签:读取,img,frame,imshow,cv2,学习,opencv,waitkey From: https://www.cnblogs.com/hellou/p/17489091.html
cat=img[0:200,0:200]/前面代表h,后面代表w
cv_show('cat',cat)
颜色通道提取:
b, g, r=cv2.split(img)
也可以通过:
img[:,:,0] = 0
img[:,:,1] = 0
cv_show('R',cur_img)
该方式只保留图片的红色。