人工智能算法工程师(中级)课程1-Opencv视觉处理之基本操作与代码详解

大家好,我是微学AI,今天给大家介绍一下人工智能算法工程师(中级)课程1-Opencv视觉处理之基本操作与代码详解。OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库。它提供了各种视觉处理函数,并支持多种编程语言,如C++、Python、Java等。OpenCV具有跨平台性,可以在不同的操作系统上运行。它广泛应用于图像处理、视频分析、物体识别、人脸识别、动作识别等领域。

文章目录

  • 一、Opencv的基本操作
    • [1. 图像读取和保存](#1. 图像读取和保存)
    • [2. 视频读取和保存](#2. 视频读取和保存)
    • [3. 图像通道操作](#3. 图像通道操作)
    • [4. 图像色彩空间](#4. 图像色彩空间)
    • [5. 图像阈值操作](#5. 图像阈值操作)
    • [6. 图像掩码操作](#6. 图像掩码操作)
    • [7. 图像混合操作](#7. 图像混合操作)
    • [8. 图像插值算法](#8. 图像插值算法)

一、Opencv的基本操作

1. 图像读取和保存

读取图像使用cv2.imread(),保存图像使用cv2.imwrite()

我们准备一张图片,例如这张:

将其命名为image.jpg,然后运行以下代码:

python 复制代码
import cv2
# 读取图像
image = cv2.imread('image.jpg')
# 保存图像
cv2.imwrite('new_image.jpg', image)

2. 视频读取和保存

读取视频使用cv2.VideoCapture(),保存视频使用cv2.VideoWriter()

python 复制代码
import cv2
# 读取视频
cap = cv2.VideoCapture('video.mp4')
# 定义视频保存的格式
fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter('output.avi', fourcc, 20.0, (640, 480))
while cap.isOpened():
    ret, frame = cap.read()
    if ret:
        # 写入视频帧
        out.write(frame)
        
        # 显示视频帧
        cv2.imshow('frame', frame)
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
    else:
        break
# 释放所有资源
cap.release()
out.release()
cv2.destroyAllWindows()

3. 图像通道操作

在OpenCV中,BGR图像的三个通道可以分别访问和操作。

python 复制代码
import cv2
import numpy as np
image = cv2.imread('image.jpg')
# 分离通道
b, g, r = cv2.split(image)
# 合并通道
merged = cv2.merge([b, g, r])
# 显示蓝色通道
cv2.imshow('Blue channel', b)
cv2.waitKey(0)
cv2.destroyAllWindows()

4. 图像色彩空间

OpenCV支持多种色彩空间转换,常用的有BGR到灰度图、BGR到HSV等。

python 复制代码
import cv2
image = cv2.imread('image.jpg')
# 转换为灰度图像
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# 转换为HSV色彩空间
hsv_image = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)

5. 图像阈值操作

阈值操作可以将图像转换为二值图像。

python 复制代码
import cv2
import numpy as np
image = cv2.imread('image.jpg', 0)
# 应用固定阈值操作
_, thresh1 = cv2.threshold(image, 127, 255, cv2.THRESH_BINARY)
cv2.imshow('Binary image', thresh1)
cv2.waitKey(0)
cv2.destroyAllWindows()

6. 图像掩码操作

掩码操作允许您选择图像的特定区域进行操作。

python 复制代码
import cv2
import numpy as np
image = cv2.imread('image.jpg')
# 创建掩码
mask = np.zeros(image.shape[:2], np.uint8)
mask[100:300, 100:400] = 255
# 应用掩码
masked_image = cv2.bitwise_and(image, image, mask=mask)
cv2.imshow('Masked image', masked_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

7. 图像混合操作

图像混合是将两幅图像按照一定的比例合并。

python 复制代码
import cv2
import numpy as np
image1 = cv2.imread('image1.jpg')
image2 = cv2.imread('image2.jpg')
# 图像混合
blended = cv2.addWeighted(image1, 0.7, image2, 0.3, 0)
cv2.imshow('Blended image', blended)
cv2.waitKey(0)
cv2.destroyAllWindows()

8. 图像插值算法

插值算法在图像缩放时使用,常见的有最近邻插值、双线性插值、双三次插值等。

python 复制代码
import cv2
image = cv2.imread('image.jpg')
# 图像缩放,使用双线性插值
resized_image = cv2.resize(image, None, fx=0.5, fy=0.5, interpolation=cv2.INTER_LINEAR)
cv2.imshow('Resized image', resized_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

以上代码示例展示了如何使用OpenCV进行基本的图像和视频处理任务。这些操作是计算机视觉应用的基础,可以用于更复杂的应用,如物体检测、人脸识别等。
大家请注意 :我们要确保替换image.jpgvideo.mp4image1.jpgimage2.jpg为大家的实际文件名。同时,确保安装.

相关推荐
Black蜡笔小新2 分钟前
企业AI算力工作站/深度学习推理工作站DLTM零代码私有化重塑智慧农业AI模型训练体系
人工智能·深度学习
轻刀快马8 分钟前
个人体验:从零构建高可用 Multi-Agent 架构与实战避坑指南
人工智能·架构·agent
SelectDB技术团队8 分钟前
PB 级自动驾驶数据秒级检索:Apache Doris 统一多模态数据平台实践
数据库·人工智能·自动驾驶·apache doris·selectdb
数智工坊12 分钟前
【UniT论文阅读】:用统一物理语言打通人类与人形机器人的知识壁垒
论文阅读·人工智能·深度学习·算法·机器人
Lyon1985052815 分钟前
ChatGPT的最终总结分析-《文字定律》随笔
人工智能·ai·chatgpt
L、21816 分钟前
CANN神经网络算子库`ops-nn`:昇腾NPU上Matmul与激活函数的底层逻辑
人工智能·深度学习·神经网络
程序员码歌18 分钟前
OpenSpec 到 Superpowers:AI 编码从说清到做对
android·前端·人工智能
海兰19 分钟前
【第21篇-续】graph-Stream-Node改造为适配openAI模型示例
java·人工智能·spring boot·spring·spring ai
MobotStone24 分钟前
生成代码一分钟,填坑一小时?问题不在 AI,而在用法
人工智能
ccice0124 分钟前
硬核技术解析:运用Gemini多步推理链,攻克办公场景中的复杂决策与风险矩阵构建(国内免费镜像实操)
人工智能·线性代数·矩阵