Opencv-python学习:(一)图像与视频读取基本操作

图像读取

  1. Img=cv2.imread():

    a、图像读取img为矩阵,为numpy中ndarray的结构,如(500,500,3)(h,w,c)前两个数字是图像长宽的像素数,第三个显示为3元色,如读取灰度图,没有第3个数,矩阵中最小值为0,最大值为255,数据类型为unit8;


    b、opencv默认读取形式为BGR 而plt读入的图为RGB读取灰度图,


    c、添加第二参数cv.imread('图像位置',cv.IMREAD_GRAYSCALE),只有一个颜色通道读取彩色图,添加第二参数cv.imread('图像位置',cv.IMREAD_COLOR)

  2. cv2.imshow(‘name’,img) 图像显示,第一个为字符串的图像的名字,第二个为传入的图像;
  3. cv2.waitKey(0) 图像显示等待,括号内填等待时间,毫秒级,0表示任意键终止;
  4. cv2.destroyAllWindows() 摧毁图像;
  5. 上三(2/3/4)函数可结合成一个函数,直接调用
def cv_show(name,img,time):       
    cv2.imshow(name,img)      
    cv2.waitKey(time)      
    cv2.destroyAllWindows() 

  1. 调出的img为numpy中的ndarray格式,可使用img.shape,查看img形状;
  2. 保存图像:cv2.imwrite('path(路径)',img)

视频的读取与灰度处理

  1. 打开视频文件:vc=cv2.VideoCapture('path(路径)')
  2. 检查视频是否打开:vc.isOpened()
  3. 读取图像 :open,frame=vc.read()
  4. 读取图像第一帧,再次read则读取第二帧,以此类推
  5. 返回值:open:布尔类型,可读取时为True;frame:当前帧的图像。
  6. 将彩色视频转换为灰度视频:
import cv2
vc=cv2.VideoCapture('car.mp4') 
#确认视频是否成功打开 
if vc.isOpened(): 
    open,frame=vc.read()
else: 
    open=False 
#将视频每帧转换为灰度图 
while open: #若open为True,即图像正常打开,循环开始      
    ret,frame=vc.read() #从第一帧开始读取 
        if frame is None: #判断是否完成读取,如帧为空 
            break #帧为空则跳出循环 
        if ret==True:#如图片读取成功,且帧不空          
            gray=cv2.cvtColor(frame,cv2.COLOR_BGA2GRAY)#将图像转换为灰度图          
        cv2.imshow('result',gray)#显示图像 
    if cv2.waitKey(10) & oxFF==27: #图像关闭方式,1、等待10ms(可修改)后关闭; #2、按Esc键关闭 break   
vc.release() #释放视频的内存空间  
cv2.destroyAllWindows()#销毁视频,注意此方法中All后两个l为小写。 


图像处理的部分简单操作

  1. 图像截图:img1=img[0:50,100:200]
  2. 将图像中三个颜色进行分割:b,g,r=cv2.split(img)
  3. img=cv2.merge(b,g,r) :将方法2中分开的颜色合并.
  4. b.shape,查看图像形状
  5. 只保留图像中的某颜色,并显示
cur_img=img.copy()#通过复制可以保留原图在此程序中的状态。 
cur_img[:,:,0]=0 #三个颜色中索引为0的颜色设置为0,BGR中的B
cur_img[:,:,1]=0 #三个颜色中索引为1的颜色设置为0,BGR中的G
cv_show('red',cur_img)#仅显示图像的红色部分


学习文件参考:唐宇迪博士视频

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值