OpenCV影像数据处理入门-学习篇

目录

  1. 简介
  2. 如何安装
  3. 图像数据处理简单操作
  4. 视频数据处理简单操作

一、简介

在计算机视觉项目的开发中,OpenCV作为最大众的开源库,拥有了丰富的常用图像处理函数库,可用于开发实时的图像处理、计算机视觉以及模式识别程序。采用C/C++语言编写,可以运行在Linux/Windows/Mac等操作系统上,能够快速的实现一些图像处理和识别的任务。此外,OpenCV还提供了java、python、cuda等的使用接口、机器学习的基础算法调用,从而使得图像处理和图像分析变得更加易干上手,让开发人员更多的精力花在算法的设计上

本文将主要介绍OpenCV开发的一些基础知识、入门上手的方法与步骤等,

OpenCV 常用链接:
OpenCV 官网
OpenCV GitHub 主页
OpenCV 中国 Wiki 论坛

二、如何安装

打开你的PyCharm点开terminal控制台
在这里插入图片描述
先输入 pip list 查看是否安装的有 opencv-python
如果没有,输入以下命令安装:

pip install opencv-python

在这里插入图片描述
再输入 pip list 查看是否成功安装 opencv-python

三、 图像数据处理

  1. 加载图片和展示图片
    获取本地一张图片,将图片以彩色和灰色展示出来

Python代码如下:

import cv2
#定义一个图片地址
img_path = r'./11.jpg'

#以彩色模式读取图片 cv2.IMREAD_COLOR
image_color = cv2.imread(img_path,cv2.IMREAD_COLOR)
#以灰度模式读取图片
image_gray = cv2.imread(img_path,cv2.IMREAD_GRAYSCALE)
#显示图片
cv2.imshow('color image',image_color)
cv2.imshow('gray image',image_gray)

#等待用户按键,然后关闭窗口,不写下面方法,图片会闪一下退出,不会停留
cv2.waitKey(0)
cv2.destroyAllWindows()

结果如下:
在这里插入图片描述

  1. 图片缩放
    获取本地一张图片,将图片以0.75倍比例显示出来
    Python代码如下:
import cv2
#读取图片
image = cv2.imread('./11.jpg')
#检查图片是否正常加载
if image is None:
    print("Error:Could not load image")
    exit()

#获取图片的原始尺寸
#image.shape[:2] 意思是正常图片会有 (高,宽,通道)属性 通道属性不用修改,只取前两个属性
original_height,original_width = image.shape[:2]
#计算新的尺寸
new_width =  int(original_width * 0.75)
new_height = int(original_height * 0.75)
#使用cv2.resize进行图片缩放  image原图片  dsize新尺寸  interpolation压缩时候使用area差值算法
resized_image = cv2.resize(image, (new_width, new_height), interpolation = cv2.INTER_AREA)
#显示原始图片和缩放后的图片
cv2.imshow("Original Image", image)
cv2.imshow("Resized Image", resized_image)
#等待用户按键,然后关闭窗口,不写下面方法,图片会闪一下退出,不会停留
cv2.waitKey(0)
cv2.destroyAllWindows()

结果如下:
在这里插入图片描述
3. 图片翻转
获取本地一张图片,将图片以翻转90度、180度、270度展示出来
Python代码如下:

import cv2
#读取图片
image = cv2.imread("./11.jpg")
#使用cv2.rotate()函数旋转图片
rotate_90 = cv2.rotate(image, cv2.ROTATE_90_CLOCKWISE) #顺时针旋转90度
rotate_180 = cv2.rotate(image, cv2.ROTATE_180) #顺时针旋转180度
rotate_270 = cv2.rotate(image,cv2.ROTATE_90_COUNTERCLOCKWISE) #顺时针旋转270度

cv2.imshow('original',image)
cv2.imshow('rotate_90',rotate_90)
cv2.imshow('rotate_180',rotate_180)
cv2.imshow('rotate_270',rotate_270)
cv2.waitKey(0)

结果如下:
在这里插入图片描述

  1. 图片保存
    读取一张图片,将图片保存下来

Python代码如下:

import cv2
#获取本地图片
image = cv2.imread("./11.jpg")
#如果图像不为空,则保存图像
if image is not None:
    cv2.imwrite("./output_image.jpg", image)
else:
    print("无法读取图像")

四、视频数据处理

  1. 读取摄像头/视频
    打开电脑摄像头,一帧一帧展示画面

Python代码如下

import cv2

#创建一个 VideoCapture 对象,参数 0 表示使用默认的摄像头,也可以传入一个视频文件的路径
cap = cv2.VideoCapture(0) #打开电脑的摄像头
while True: #读取摄像头里的信息
    #读取一帧 数据在frame中存储 ret是用来判断有没有读取成功
    ret, frame = cap.read()
    #如果读取成功,显示这一帧
    if ret:
        cv2.imshow('frame', frame)

    #按‘q’键退出循环 waitKey加的延时,画面之间至少要间隔1ms
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
#释放资源并关闭窗口
cap.release()
cv2.destroyWindow(frame)

结果如下:
在这里插入图片描述
如需打开本地视频,修改:

cap = cv2.VideoCapture("./piano.mp4") #打开本地视频
  1. 录制电脑摄像视频保存到本地
    保存电脑摄像头的每一帧,输出到本地MP4文件中

Python代码如下

import cv2
#定义视频捕捉对象
cap = cv2.VideoCapture(0)

#检查是否成功打开摄像头
if not cap.isOpened():
    print("Error opening video stream or file")
    exit()

#获取摄像头的帧宽度和帧高度
frame_width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
frame_height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))

#定义视频编码器和输出文件
fourcc = cv2.VideoWriter_fourcc(*'mp4v') #保存成MP4文件
out = cv2.VideoWriter("./output.mp4",fourcc,20.0,(frame_width,frame_height)) #帧率为20.0fps

while True:
    ret, frame = cap.read()
    if not ret:
        print("Error reading video stream or file")
        break

    #将当前帧写入输出视频文件
    out.write(frame)
    #显示当前帧
    cv2.imshow('frame',frame)
    # 按‘q’键退出循环
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

#释放资源并关闭窗口
cap.release()
out.release()
cv2.destroyAllWindows()

在这里插入图片描述

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值