计算机视觉+Numpy和OpenCV入门

news/2025/2/20 3:31:46/

Day 1:Python基础+Numpy和OpenCV入门

  1. Python基础

    • 变量与数据类型、函数与类的定义、列表与字典操作
    • 文件读写操作(读写图像和数据文件)

    练习任务:写一个Python脚本,读取一个图像并保存灰度图像。

    import cv2
    img = cv2.imread('image.jpg')
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    cv2.imwrite('gray_image.jpg', gray)
  2. Numpy基础

    • 数组创建与索引
    • 矩阵运算(矩阵乘法、转置、逆矩阵计算)

    练习任务:利用Numpy生成一个随机矩阵,计算其特征值和特征向量。

读取一个图像并保存灰度图像。

# 练习任务:写一个Python脚本,读取一个图像并保存灰度图像。
# 1. 读取图像
# 2. 将图像转换为灰度图像
# 3. 保存灰度图像
# 提示:使用OpenCV库
# 4. 保存灰度图像
# 提示:使用OpenCV库
# 5. 显示原始图像和灰度图像
# 提示:使用matplotlib库
# 6. 保存原始图像和灰度图像
# 提示:使用matplotlib库import cv2
import matplotlib.pyplot as plt
import numpy as np# 读取图像
img = cv2.imread('cat.jpg')# 将图像转换为灰度图像
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)# 保存灰度图像
cv2.imwrite('gray_cat.jpg', gray_img)# 显示原始图像和灰度图像
plt.subplot(1, 2, 1)
plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
plt.title('Original Image')
plt.axis('off')plt.subplot(1, 2, 2)
plt.imshow(gray_img, cmap='gray')
plt.title('Gray Image')
plt.axis('off')plt.show()# 保存原始图像和灰度图像
plt.imsave('original_cat.jpg', cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
plt.imsave('gray_cat.jpg', gray_img, cmap='gray')

Numpy基础

# 20250210
#Numpy基础
# - 数组创建与索引
# - 矩阵运算(矩阵乘法、转置、逆矩阵计算)# > 练习任务:利用Numpy生成一个随机矩阵,计算其特征值和特征向量。
# 1. 生成一个3x3的随机矩阵
# 2. 计算矩阵的特征值和特征向量
# 3. 打印特征值和特征向量
# 提示:使用Numpy库import numpy as np# 创建一个包含5个元素的一维数组
arr1 = np.array([1, 2, 3, 4, 5])
print(arr1)
# [1 2 3 4 5]# 创建一个包含3x3个元素的二维数组
arr2 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(arr2)
# [[1 2 3] 
#  [4 5 6] 
#  [7 8 9]]# 创建一个包含3x3个元素的随机矩阵
arr3 = np.random.rand(3, 3)
print(arr3)
# [[0.43466011 0.11696293 0.08589901]
#  [0.43506184 0.96955457 0.94011666]
#  [0.0907567  0.71107309 0.2533223 ]]print(arr1[0])  # 访问数组的第一个元素
print(arr2[1, 2])  # 访问第二行第三列的元素
print(arr3[0, 0])  # 访问随机矩阵的第一个元素
# 1
# 6
# 0.434660114961665# 矩阵运算(矩阵乘法、转置、逆矩阵计算)# 创建两个矩阵
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])# 矩阵乘法
result = np.dot(A, B)
print(result)
# [[19 22]
#  [43 50]]# 矩阵转置
A_transpose = A.T
print(A_transpose)
# [[1 3]
#  [2 4]]# 逆矩阵计算
A_inv = np.linalg.inv(A)
print(A_inv)
# [[-2.   1. ]
#  [ 1.5 -0.5]]# 计算矩阵的特征值和特征向量
A = np.array([[4, -2], [1, 1]])
eigenvalues, eigenvectors = np.linalg.eig(A)
print('特征值:', eigenvalues)
print('特征向量:', eigenvectors)
# 特征值: [3. 2.]
# 特征向量: 
#  [[0.89442719 0.70710678]
#  [-0.4472136  0.70710678]]# 总结
# Numpy数组创建与索引:通过 np.array() 创建数组,可以进行索引操作获取特定的元素。
# 矩阵运算:
# 矩阵乘法使用 np.dot() 或 @;
# 矩阵转置使用 .T;
# 矩阵的逆使用 np.linalg.inv()。
# 特征值与特征向量:通过 np.linalg.eig() 可以计算矩阵的特征值和特征向量。


http://www.ppmy.cn/news/1572890.html

相关文章

DeepSeek生成思维导图

一、准备阶段 工具准备 安装思维导图软件(推荐XMind/MindMaster/在线工具如ProcessOn) 打开DeepSeek官网或集成平台(https://www.deepseek.com/) 明确需求 确定思维导图核心主题(如"碳中和实施方案"&…

【CSS进阶】CSS元素的水平、垂直居中方法

在前端开发中,实现 水平居中 和 垂直居中 是常见的需求。不同的 HTML 元素(块级元素、行内元素、行内块元素)以及不同的布局方式(传统布局、Flexbox、Grid、绝对定位)会有不同的居中方法。以下是各类居中方式的总结&am…

DeepSeek-V3模型底层架构的核心技术一(多Token预测(MTP)技术)

一、DeepSeek-V3的框架结构 DeepSeek-V3的框架结构基于三大核心技术构建:多头潜在注意力(MLA)、DeepSeekMoE架构和多token预测(MTP)。这些创新使得模型在处理长序列、平衡计算负载以及生成连贯文本方面表现出色。 1. 基础架构 DeepSeek-V3的基础架构仍然基于Transformer框…

借3D视觉定位东风,汽车零部件生产线实现无人化的精准飞跃

在新能源汽车市场的推动下,汽车零部件制造业正迎来前所未有的发展机遇。然而,传统的生产方式已经无法满足现代制造业对高效、精准的要求。为了应对这一挑战,越来越多的企业开始探索智能化生产的道路。 在这个过程中,3D视觉定位系…

服务器硬件知识--------linux系统初识and安装

#!/bin/bash 学IT,好技术,私! 一、服务器硬件与linux系统初识及安装 1、服务器硬件知识 我们知道,组成计算机的硬件主要有主机和输入/输出设备。主机包括机箱、电源、主板、CPU(Central Processing Unit,…

ESP32鼠标驱动(ble hid device_demo)【ESP32指向鼠标】

ESP32鼠标驱动(ble hid device_demo)【ESP32指向鼠标】 我使用的vscode开发esp32,用的是ESP-IDF v5.12固件,其提供了很多例程,在搜索里面输入“ESP-IDF: Show Examples Projects”,便可看到例程,如下图所示&#xff0…

19.4.9 数据库方式操作Excel

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 本节所说的操作Excel操作是讲如何把Excel作为数据库来操作。 通过COM来操作Excel操作,请参看第21.2节 在第19.3.4节【…

DeepSeek-R1论文阅读及本地调用

前言 DeepSeek已经火了一段时间了,对于这项“国运级”的技术成果,即便研究的不是这个方向,也不免好奇前来看看。本文将先解析一下DeepSeek-R1这篇论文,再对DeepSeek的本地部署使用进行研究配置。 论文标题:DeepSeek-…