图像处理笔记(OpenCv)

目录

1.计算机眼中的图像

1.1.图像的表示方法

 1.2.显示图像(此处用opencv方式打开)

1.3ROI区域(部分图像截取)

1.4颜色通道提取

2.视频文件处理

2.1读取、显示视频文件

2 .2将视频文件转为灰度视频

2.3.视频文件的暂停和播放

3.电脑摄像头

3.1调用电脑摄像头

3.2视频灰度化操作

3.3.抓拍摄像头视频的某一帧图像


1.计算机眼中的图像

计算机中的图像是由大量像素点构成的,而每个像素点又是由RGB三颜色通道的矩阵所表示的,所以在计算机眼中的图像是由大量矩阵数据所构成的。

1.1.图像的表示方法

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

img = cv2.imread('imgs/girl.jpg')
print(img)

 1.2.显示图像(此处用opencv方式打开)

原图:

#图像的显示,也可以创建多个窗口
cv2.imshow('image',img)
#等待时间,毫秒级,0表示任意键终止
cv2.waitKey(0)
cv2.destroyAllWindows()

 灰度图:

img = cv2.imread('imgs/girl.jpg', cv2.IMREAD_GRAYSCALE)
print(img.shape)

1.3ROI区域(部分图像截取)

1.4颜色通道提取

def cv_show(name,img):
    #图像的显示,也可以创建多个窗口
    cv2.imshow('image',img)
    #等待时间,毫秒级,0表示任意键终止
    cv2.waitKey(0)
    cv2.destroyAllWindows()

#颜色通道提取
img = cv2.imread('imgs/girl.jpg')
b,g,r=cv2.split(img)
img=cv2.merge((b,g,r))
#只保留R
cur_img=img.copy()
cur_img[:,:,0]=0
cur_img[:,:,1]=0
cv_show('R',cur_img)

2.视频文件处理

2.1读取、显示视频文件

video = cv2.VideoCapture("gril.mp4")  # 打开视频文件
while (video.isOpened()):  # 视频文件被打开后
    retval, image = video.read()  # 读取视频文件
    # 设置“Video”窗口的宽为420,高为300
    cv2.namedWindow("Video", 0)
    cv2.resizeWindow("Video", 420, 300)
    if retval == True:  # 读取到视频文件后
        cv2.imshow("Video", image)  # 在窗口中显示读取到的视频文件
    else:  # 没有读取到视频文件
        break
    key = cv2.waitKey(100)  # 窗口的图像刷新时间为1毫秒
    if key == 27:  # 如果按下Esc键
        break
video.release()  # 关闭视频文件
cv2.destroyAllWindows()  # 销毁显示视频文件的窗口

2 .2将视频文件转为灰度视频

#灰度化处理
video = cv2.VideoCapture("gril.mp4")  # 打开视频文件
while (video.isOpened()):  # 视频文件被打开后
    retval, img_Color = video.read()  # 读取视频文件
    # 设置“Video”窗口的宽为420,高为300
    cv2.namedWindow("Gray", 0)
    cv2.resizeWindow("Gray", 420, 300)
    if retval == True:  # 读取到视频文件后
        # 把“gril.mp4”由彩色视频转换为灰度视频
        img_Gray = cv2.cvtColor(img_Color, cv2.COLOR_BGR2GRAY)
        cv2.imshow("Gray", img_Gray)  # 在窗口中显示读取到的视频文件
    else:  # 没有读取到视频文件
        break
    key = cv2.waitKey(1)  # 窗口的图像刷新时间为1毫秒
    if key == 27:  # 如果按下Esc键
        break
video.release()  # 关闭视频文件
cv2.destroyAllWindows()  # 销毁显示视频文件的窗口

2.3.视频文件的暂停和播放

import cv2

video = cv2.VideoCapture("gril.mp4")  # 打开视频文件
while (video.isOpened()):  # 视频文件被打开后
    retval, image = video.read()  # 读取视频文件
    # 设置“Video”窗口的宽为420,高为300
    cv2.namedWindow("Video", 0)
    cv2.resizeWindow("Video", 420, 300)
    if retval == True:  # 读取到视频文件后
        cv2.imshow("Video", image)  # 在窗口中显示读取到的视频文件
    else:  # 没有读取到视频文件
        break
    key = cv2.waitKey(50)  # 窗口的图像刷新时间为50毫秒
    if key == 32:  # 如果按下空格键
        cv2.waitKey(0)  # 不刷新图像,实现暂停效果
        continue  # 再按一次空格键,继续播放
    if key == 27:  # 如果按下Esc键
        break
video.release()  # 关闭视频文件
cv2.destroyAllWindows()  # 销毁显示视频文件的窗口

3.电脑摄像头

3.1调用电脑摄像头

import cv2

capture = cv2.VideoCapture(0)  # 打开笔记本内置摄像头
while (capture.isOpened()):  # 笔记本内置摄像头被打开后
    retval, image = capture.read()  # 从摄像头中实时读取视频
    cv2.imshow("Video", image)  # 在窗口中显示读取到的视频
    key = cv2.waitKey(1)  # 窗口的图像刷新时间为1毫秒
    if key == 32:  # 如果按下空格键
        break
capture.release()  # 关闭笔记本内置摄像头
cv2.destroyAllWindows()  # 销毁显示摄像头视频的窗口

 

3.2视频灰度化操作

import cv2

capture = cv2.VideoCapture(0, cv2.CAP_DSHOW)  # 打开笔记本内置摄像头
while (capture.isOpened()):  # 笔记本内置摄像头被打开后
    retval, image = capture.read()  # 从摄像头中实时读取视频
    # 把彩色视频转换为灰度视频
    image_Gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    if retval == True:  # 读取到摄像头视频后
        cv2.imshow("Video", image)  # 在窗口中显示彩色视频
        cv2.imshow("Video_Gray", image_Gray)  # 在窗口中显示灰度视频
    key = cv2.waitKey(1)  # 窗口的图像刷新时间为1毫秒
    if key == 32:  # 如果按下空格键
        break
capture.release()  # 关闭笔记本内置摄像头
cv2.destroyAllWindows()  # 销毁显示摄像头视频的窗口

3.3.抓拍摄像头视频的某一帧图像

import cv2
 
 
cap = cv2.VideoCapture(0, cv2.CAP_DSHOW) # 打开笔记本内置摄像头
while (cap.isOpened()): # 笔记本内置摄像头被打开后
    ret, frame = cap.read() # 从摄像头中实时读取视频
    cv2.imshow("Video", frame) # 在窗口中显示视频
    k = cv2.waitKey(1) # 图像的刷新时间为1毫秒
    if k == 32: # 按下空格键
        cap.release() # 关闭笔记本内置摄像头
        cv2.destroyWindow("Video") # 销毁名为Video的窗口
        cv2.imwrite("D:/copy.png", frame) # 保存按下空格键时摄像头视频中的图像
        cv2.imshow('img', frame) # 显示按下空格键时摄像头视频中的图像
        cv2.waitKey() # 刷新图像
        break
cv2.destroyAllWindows() # 销毁显示图像的窗口

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值