python opencv学习(二)图像的基本操作

图像的基本操作

opencv中,图像的读取格式是BGR通道读取的。

数据读取-图像

  • cv2.IMREAD_COLOR:彩色图像
  • cv2.IMREAD_GRAYSCALE:灰度图像

每个像素点,其实是一个值。在0-255浮动,表示亮度,0接近黑色,255非常亮了接近白色 

彩色图,三个颜色通道RGB。就相当于三个矩阵构成

读取图像

三个工具包

  • import cv2
  • import matplotlib.pyplot as plt
  • import numpy as np

显示图片

可以定义一个显示函数

def cv_show(name , img):
            cv2.imshow(name,img)
            cv2.waitKey(0)           #等待时间,毫秒级
            cv2.destroyAllWindow()

img.shape()  可以打印出图像的大小(500,500,3)表示为500*500的彩色图像

 

 读取视频流

import cv2

import matplotlib.pyplot as plt
import numpy as np
vc = cv2.VideoCapture('test.mp4')
#检查是否打开正确

if vc.isOpened():
    #能正确打开,返回一个open值vc.imread()是读取视频中的第一帧,可以写个循环一直往下读
    #frame 是当前这一帧图像参数
    open,frame=vc.imread()  
else:
    #写一个布尔判断,判断能否打开
    open=False

while open:  #当open为true时执行while循环,遍历所有帧
    ret,frame=vc.read()
    if frame is None:  #如果帧数为空,跳出循环
        break
    if ret == True:  #如果这一帧没有毛病 
        gray = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)#灰度化
        cv2.imshow('result',gray)
        if cv2.waitKey(10000) & 0xFF==27:#处理速度,0xFF==27是退出键
        break
    vc.release()
    cv2.destroyAllWindow()

截取部分图像数据

import cv2
img = cv2.imread('F:\\picture\\desk\\cat.jpg')
cat = img[0:200,0:200]
cv2.imshow('img',img)
cv2.imshow('cat',cat)
cv2.waitKey(0)
cv2.destroyAllWindow()

颜色通道提取
b,g,r = cv2.split(cat)
组合起来

img=cv2.merge((b,g,r))

#只保留R通道  #B,G,R( 0,1,2)


cur_img=img.copy()


cur_img[:,:,0]=0


cur_img[:,:,1]=0


cv_show('R',cur_img)#此处调用了,上面说的显示函数
 


#只保留G通道  #B,G,R( 0,1,2)


cur_img=img.copy()

cur_img[:,:,0]=0


cur_img[:,:,2]=0


cv_show('G',cur_img)#此处调用了,上面说的显示函数


    

#只保留B通道  #B,G,R( 0,1,2)


cur_img=img.copy()

cur_img[:,:,1]=0


cur_img[:,:,2]=0


cv_show('B',cur_img)#此处调用了,上面说的显示函数

  

 

 

 


版权声明:本文为lovetobelove原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。