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

 

相关推荐

  1. python图像处理opencv笔记汇总

    2024-05-14 14:24:02       18 阅读
  2. OpenCV-图像基础处理

    2024-05-14 14:24:02       18 阅读
  3. OpenCV-图像通道处理

    2024-05-14 14:24:02       19 阅读
  4. OpenCV图像转换处理

    2024-05-14 14:24:02       13 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-05-14 14:24:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-14 14:24:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-14 14:24:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-14 14:24:02       18 阅读

热门阅读

  1. Who is the strongest chip company in China?

    2024-05-14 14:24:02       10 阅读
  2. 复现论文的conda环境

    2024-05-14 14:24:02       9 阅读
  3. 代码随想录-栈与队列 | 239滑动窗口最大值

    2024-05-14 14:24:02       12 阅读
  4. 算法第63天 单调栈3

    2024-05-14 14:24:02       13 阅读
  5. ddpm Denoising Diffusion Probabilistic Model 学习笔记

    2024-05-14 14:24:02       14 阅读
  6. react router v6总结

    2024-05-14 14:24:02       10 阅读
  7. 【Python快速上手(二十二)】

    2024-05-14 14:24:02       10 阅读
  8. C++ 使用nlohmann/json.hpp库读写json字符串

    2024-05-14 14:24:02       14 阅读
  9. Ubuntu下C++编程总结AllInOne

    2024-05-14 14:24:02       13 阅读
  10. Json格式备忘

    2024-05-14 14:24:02       9 阅读