计算机视觉+Numpy和OpenCV入门
Day 1:Python基础+Numpy和OpenCV入门
-
Python基础
- 变量与数据类型、函数与类的定义、列表与字典操作
- 文件读写操作(读写图像和数据文件)
练习任务:写一个Python脚本,读取一个图像并保存灰度图像。
import cv2 img = cv2.imread('image.jpg') gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) cv2.imwrite('gray_image.jpg', gray) -
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() 可以计算矩阵的特征值和特征向量。
相关文章:
计算机视觉+Numpy和OpenCV入门
Day 1:Python基础Numpy和OpenCV入门 Python基础 变量与数据类型、函数与类的定义、列表与字典操作文件读写操作(读写图像和数据文件) 练习任务:写一个Python脚本,读取一个图像并保存灰度图像。 import cv2 img cv2.im…...
深入理解正则表达式的预查
深入理解正则表达式的预查(Lookahead and Lookbehind) 在正则表达式中,预查(Lookahead and Lookbehind)是一种强大的工具,允许你在不消耗字符的情况下进行匹配检查。预查可以分为四种类型:正向肯定预查、正向否定预查、反向肯定预查和反向否定预查。 1. 正向肯定预查(…...
网工项目理论1.7 设备选型
本专栏持续更新,整一个专栏为一个大型复杂网络工程项目。阅读本文章之前务必先看《本专栏必读》。 一.交换机选型要点 制式:盒式交换机/框式交换机。功能:二层交换机/三层交换机。端口密度:每交换机可以提供的端口数量。端口速率:百兆/千兆/万兆。交换容量:交换矩阵…...
Gateway中的Filter机制
Gateway中的Filter机制 文章目录 Gateway中的Filter机制Gateway中的Filter机制Gateway Filter 机制的概述核心思想与设计Filter 的两种类型过滤器的生命周期Gateway Filter 的特点Gateway Filter 的意义Gateway Filter 的工作原理核心架构与执行流程执行流程解析过滤器类型的角…...
顺序表常用操作和笔试题
1、顺序表的常用操作 1.1 顺序表的创建 如下代码所示:创建了一个默认空间为10的整型顺序表,如果空间不足则会以1.5倍扩容。 List<Integer> list new ArrayList<>(); 创建一个空间为15的整型顺序表 List<Integer> list2 new ArrayL…...
二.数据治理流程架构
1、数据治理流程架构核心思想: 该图描绘了一个以数据标准规范体系为核心,大数据生命周期管理为主线,数据资源中心为依托,并辅以数据质量管理和大数据安全与隐私管理的数据治理流程架构。它旨在通过规范化的流程和技术手段&#x…...
【Java】泛型与集合篇(二)
泛型与集合(二) Set 接口及实现类HashSet 类特点内部实现构造方法LinkedHashSet 类基本概念特点构造方法常用方法适用场景用 Set 对象实现集合运算TreeSet 类特性构造方法常用方法注意事项对象顺序自然排序定制排序注意事项Queue 接口及实现类Queue 接口定义与特点常用方法常…...
解锁机器学习核心算法 | 线性回归:机器学习的基石
在机器学习的众多算法中,线性回归宛如一块基石,看似质朴无华,却稳稳支撑起诸多复杂模型的架构。它是我们初涉机器学习领域时便会邂逅的算法之一,其原理与应用广泛渗透于各个领域。无论是预测房价走势、剖析股票市场波动࿰…...
CSS 底部颗粒磨砂特效
参考:element-plus的顶部效果 background-image: radial-gradient(transparent 1px, var(--bg-color) 1px); background-size: 4px 4px; backdrop-filter: saturate(50%) blur(4px); 注意点:var(--bg-color) 改为跟你背景色相同的即可。 其他自己看情况…...
QT自定义扫描控件,支持任意方位拖动和拖动扫描范围。
部分代码: void FishControlForm::paintEvent(QPaintEvent *event) {QPainter p(this);p.setRenderHints(QPainter::Antialiasing|QPainter::SmoothPixmapTransform);p.translate(m_centerPoint);//bgp.setPen(Qt::white);p.drawEllipse(-m_radius,-m_radius,m_rad…...
Ubuntu18.04安装rvm、ruby2.6.5和rails5.2.6
系统环境:Ubuntu 18.04 一、安装前准备 1. sudo apt update 2. sudo apt upgrade 如果提示abort,忽略。 3. sudo apt install sqlite3 gnupg curl git libpq-dev 二、安装rvm ruby版本管理器 1.切换管理员模式 sudo su 2.安装软件签名公钥 gpg…...
燧光 XimmerseMR SDK接入Unity
官网SDK文档连接: RhinoX Unity XR SDK 一:下载SDK 下载链接:RhinoX Unity XR SDK 二:打开Unity项目,添加Package 1、先添加XR Core Utilties包和XR Interaction Toolkit包 2、导 2、再导入下载好的燧光SDK 三&…...
罗德与施瓦茨ZNB20,矢量网络分析仪9KHz-20GHz
罗德与施瓦茨ZNB20矢量网络分析仪9KHz-20GHz R&SZNB20矢量网络分析仪 产品型号: ZNB20 产品品牌:罗德与施瓦茨 R&S 产品名称: 矢量网络分析仪 频率范围:9kHz - 20GHz R&S ZNB 矢量网络分析仪 良好的测量速度、动态范围和操作方便性&am…...
突破平面限制:低空经济激活城市土地“立体生长力”
蓄锐行:我深耕于低空经济领域,同时对IOT技术有着深入的理解,而在AI的探索性研究上,我也已迈出坚实的步伐,虽起步不久,却满怀热情与憧憬。平日里,我热衷于撰写关于低空经济的文章,分享…...
可调节图片参数,解决图片模糊及尺寸过小问题的工具
软件介绍 你是否正为图片模糊、尺寸太小而烦恼?别担心,有这样一款神器能帮你轻松解决。它能精准调节图片参数,即便原本模糊不清的图片,经它处理后也能变得高清锐利,瞬间让图片焕然一新。而且,它还具备导出…...
React 与 Vue 对比指南 - 上
React 与 Vue 对比指南 - 上 本文将展示如何在 React 和 Vue 中实现常见功能,从基础渲染到高级状态管理 Hello 分别使用 react 和 vue 写一个 Hello World! react export default () > {return <div>Hello World!</div>; }vue <…...
✨2.快速了解HTML5的标签类型
✨✨HTML5 的标签类型丰富多样,每种类型都有其独特的功能和用途,以下是一些常见的 HTML5 标签类型介绍: 🦋结构标签 🪭<html>:它是 HTML 文档的根标签,所有其他标签都包含在这个标签内&am…...
力扣 买卖股票的最佳时机
贪心算法典型例题。 题目 做过股票交易的都知道,想获取最大利润,就得从最低点买入,最高点卖出。这题刚好可以用暴力,一个数组中找到最大的数跟最小的数,然后注意一下最小的数在最大的数前面即可。从一个数组中选两个数…...
【SQL】SQL多表查询
🎄概念 一般我们说的多表查询都涉及外键和父子表之间的关系。比如一对多:一般前面指的是父表后面指的是子表。 ⭐分类 一对多(多对一) 多对多 一对一 ⭐一对多 📢案例:部门与员工的关系 📢关系:一个部门对应多个员…...
HTML之JavaScript DOM(document)编程处理事件
HTML之JavaScript DOM(document)编程处理事件 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"…...
知识篇 | DeepSeek企业部署模式主要有6种
国际数据公司IDC近日发文《DeepSeek爆火的背后,大模型/生成式AI市场生态潜在影响引人关注》表示: “大模型的部署过程需同时满足高并发与低延迟的严苛要求,并需全面考量数据安全、隐私保障、资源弹性扩展以及系统维护等多重因素,D…...
uniapp中@input输入事件在修改值只有第一次有效的问题解决
在uniapp中使用输入框,要求输入不超过7个字,所以需要监听输入事件,当每次输入文字的时候,就把输入的值截断,取前7个值。但是在input事件中,重新赋值的值发生了变化,但是页面上的还是没有变&…...
linux环境-nginx通过nginx_upstream_check_module模块,配置服务自动检测-日志自动分割
依赖包正在审核中,通过后将在文章顶部展示,如再次编辑请到内容管理-下载类目 cd nginx源码目录(nginx-1.27.3) 在源码目录下执行一下操作,完成nginx安装和启动 1、双击执行gccCheck.sh,安装gcc化境 脚本内容如下 #!/bin/bash # 检查GCC是否安装 if ! gcc --vers…...
AI 百炼成神:线性回归,预测房价
我们开始第一个项目——线性回归:预测房价。这是一个经典的机器学习入门项目,可以帮助你理解如何使用线性回归模型来预测连续的数值。 第一个项目:线性回归预测房价 项目目标 学习线性回归的基本概念。使用历史房价数据建立一个预测模型。理解如何评估模型的性能。项目步骤…...
Linux运维篇-存储基础知识
什么是存储 用于存放数据信息的设备和介质,等同于计算机系统中的外部存储,是一个完整的系统。 存储的结构和趋势 存储的体系结构 当前存储的主要体系结构有三种: DASNASSAN 存储的发展趋势 ssd固态硬盘云存储一体化应用存储设备非结构…...
Pytorch实现论文之三元DCGAN生成RGB图像用于红外图像着色生成
简介 简介:采用了三次DCGAN单独生成单通道图像之后进行组成RGB图像放入鉴别器中检测,并在鉴别器和生成器的损失训练中采用梯度方法来提升或者降低权重。该方法将用于获得红外图像着色的生成。 论文题目:Infrared Image Colorization based on a Triplet DCGAN Architectur…...
Socket通讯协议理解及客户端服务器程序流程
Socket通讯我们可以从以下几个方面简单理解 1.Socket是网络通信中的一项重要技术,它提供了在网络上进行数据交换的接口。用C#、Java、C等开发语言,都可以开发Socket网络通信程序。 2.Socket(套接字)是计算机网络编程中的一种抽象,它允许不同…...
ceph部署-14版本(nautilus)-使用ceph-ansible部署实验记录
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、环境信息二、部署步骤2.1 基础环境准备2.2 各节点docker环境安装2.3 搭建互信集群2.4 下载ceph-ansible 三、配置部署文件3.1 使用本地docker3.2 配置hosts…...
vue3 + thinkphp 接入 七牛云 DeepSeek-R1/V3 流式调用和非流式调用
如何获取七牛云 Token API 密钥 https://eastern-squash-d44.notion.site/Token-API-1932c3f43aee80fa8bfafeb25f1163d8 后端 // 七牛云 DeepSeek API 地址private $deepseekUrl https://api.qnaigc.com/v1/chat/completions;private $deepseekKey 秘钥;// 流式调用public f…...
vlanif接口转发vlan
一.为什么需要VLAN 1.1 什么是VLAN? VLAN(Virtual LAN),翻译成中文是“虚拟局域网”。LAN可以是由少数几台家用计算机构成的网络,也可以是数以百计的计算机构成的企业网络。VLAN所指的LAN特指使用路由器分割的网络——…...
