图像处理笔记(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() # 销毁显示图像的窗口

 

  • 27
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用内容,OpenCV是一个开源计算机视觉和机器学习软件库,用于开发图像和视频处理应用程序。通过使用OpenCV,您可以读取摄像头并显示实时图像,打开视频文件或摄像头文件,并获取视频的相关信息,例如帧宽度、帧高度、帧率和总帧数。 对于学习OpenCV,你可以按照以下步骤进行: 1. 安装OpenCV库:在开始学习OpenCV之前,您需要从OpenCV官方网站下载和安装OpenCV库。根据您的操作系统和编程语言选择合适的版本。 2. 学习基本概念:熟悉OpenCV的基本概念和术语,例如图像和视频的加载、显示、保存以及常用的图像处理操作,如滤波、边缘检测和特征提取等。 3. 掌握OpenCV函数和类:深入了解OpenCV提供的函数和类,例如cv::Mat用于图像和矩阵操作,cv::VideoCapture用于读取和处理视频,以及cv::imshow和cv::waitKey等用于显示图像的函数。 4. 实践项目:通过完成一些实践项目来应用您所学到的知识。例如,利用OpenCV实现人脸检测、目标追踪、图像识别等。 5. 学习资料和资源:查找和阅读OpenCV的官方文档、教程和示例代码,参与开源社区讨论和交流,加入相关的论坛和邮件列表等。 总结起来,学习OpenCV包括安装OpenCV库、学习基本概念、掌握OpenCV函数和类、实践项目以及查找和阅读相关资料和资源。通过不断实践和学习,您将能够更好地理解和应用OpenCV库来开发图像和视频处理应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值