当前位置: 首页> 汽车> 报价 > OpenCV影像数据处理入门-学习篇

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

时间:2025/7/10 9:35:24来源:https://blog.csdn.net/qq_38925911/article/details/141967739 浏览次数: 0次

目录

  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加的延时,画面之间至少要间隔1msif 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.0fpswhile 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()

在这里插入图片描述

关键字:OpenCV影像数据处理入门-学习篇

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: