【计算机视觉】OpenCV实战项目:Long-Exposure:基于深度学习的长时间曝光合成技术
Long-Exposure:基于深度学习的长时间曝光合成技术
- 项目概述与技术背景
- 项目核心功能
- 技术原理
- 环境配置与安装
- 硬件要求建议
- 详细安装步骤
- 可选组件安装
- 实战应用指南
- 1. 基础使用:视频转长曝光
- 2. 高级模式:自定义光轨合成
- 3. 批量处理模式
- 技术实现深度解析
- 1. 核心算法流程
- 2. 运动估计模块
- 3. 曝光合成算法
- 常见问题与解决方案
- 1. 内存不足错误
- 2. 光轨断裂问题
- 3. 结果图像噪点多
- 性能优化技巧
- 1. GPU加速实现
- 2. 多进程处理
- 3. 内存映射技术
- 扩展应用与创意玩法
- 1. 光绘艺术创作
- 2. 天文摄影模拟
- 3. 动态模糊增强
- 学术背景与相关研究
- 基础论文
- 前沿技术
- 项目路线图与展望
- 近期开发计划
- 长期发展方向
Long-Exposure是由Kelvins团队开发的一个开源项目,专注于使用计算机视觉和深度学习技术将普通视频或图像序列合成为具有艺术效果的长时间曝光照片。本文将全面剖析该项目的技术原理、实现细节,并提供从环境配置到实际应用的完整指南。
项目概述与技术背景
项目核心功能
Long-Exposure项目实现了以下关键能力:
- 视频转长曝光:将动态视频转换为静态长曝光照片
- 智能轨迹合成:提取移动物体的光轨效果
- 多模式输出:支持光绘、星轨、水流雾化等特效
- 高效计算:利用GPU加速处理流程
图:项目实现的典型长曝光效果(来源:项目仓库)
技术原理
项目采用的核心算法包括:
- 帧间运动估计:基于光流或特征匹配
- 像素时间积分:模拟真实相机长曝光物理过程
- 运动物体分割:分离静态背景与动态元素
- 噪声抑制:时域降噪处理
环境配置与安装
硬件要求建议
组件 | 最低配置 | 推荐配置 |
---|---|---|
CPU | Intel i5 | Intel i7/Xeon |
GPU | 无 | NVIDIA GTX 1060+ |
内存 | 8GB | 16GB+ |
存储 | 10GB SSD | NVMe SSD |
详细安装步骤
# 克隆仓库
git clone https://github.com/kelvins/long-exposure.git
cd long-exposure# 创建conda环境(Python 3.8+)
conda create -n longexp python=3.8
conda activate longexp# 安装核心依赖
pip install -r requirements.txt# 安装OpenCV(推荐编译版)
pip install opencv-contrib-python-headless# 验证安装
python -c "import cv2, numpy; print('OpenCV版本:', cv2.__version__)"
可选组件安装
# 安装CUDA加速支持(需先安装CUDA Toolkit)
pip install cupy-cuda11x # 根据CUDA版本选择# 安装深度学习模型支持
pip install torch torchvision
实战应用指南
1. 基础使用:视频转长曝光
python main.py \--input videos/fireworks.mp4 \--output results/fireworks_le.jpg \--mode light_trails \--duration 5.0
参数解析:
--input
:输入视频/图像序列路径--output
:结果保存路径--mode
:处理模式(light_trails/waterflow/stars等)--duration
:模拟曝光时间(秒)
2. 高级模式:自定义光轨合成
from long_exposure import LongExposureGenerator# 初始化处理器
processor = LongExposureGenerator(motion_threshold=0.1, # 运动检测灵敏度trail_length=15, # 光轨长度blend_mode='screen' # 混合模式
)# 处理图像序列
result = processor.process_frames("frames/sequence_*.jpg")# 保存结果
cv2.imwrite("custom_trail.jpg", result)
3. 批量处理模式
python batch_process.py \--config configs/city_night.json \--workers 4
示例配置文件(city_night.json
):
{"input_dir": "data/city_night","output_dir": "results/city_night","params": {"mode": "light_trails","duration": 8.0,"fps": 30,"denoise": true}
}
技术实现深度解析
1. 核心算法流程
2. 运动估计模块
项目采用两种运动检测方法:
- 稠密光流法(Farneback算法)
flow = cv2.calcOpticalFlowFarneback(prev_frame, next_frame, None, 0.5, 3, 15, 3, 5, 1.2, 0 )
- 稀疏特征法(ORB特征匹配)
orb = cv2.ORB_create() kp1, des1 = orb.detectAndCompute(frame1, None) kp2, des2 = orb.detectAndCompute(frame2, None)
3. 曝光合成算法
核心积分公式实现:
def temporal_integration(frames):integrated = np.zeros_like(frames[0], dtype=np.float32)for frame in frames:# 运动区域加权motion_mask = calculate_motion(frame)integrated += frame * motion_maskreturn normalized(integrated)
常见问题与解决方案
1. 内存不足错误
现象:MemoryError
或Killed
进程终止
解决方案:
- 降低处理分辨率:
python main.py --resize 0.5 ...
- 使用帧采样:
python main.py --frame_skip 2 ...
- 启用流式处理模式:
processor.set_stream_mode(True)
2. 光轨断裂问题
现象:运动轨迹不连续
优化方法:
- 调整运动阈值:
python main.py --motion_thresh 0.05 ...
- 增加光流平滑:
processor.set_flow_smooth(True)
- 使用深度学习光流(需安装额外模型):
python main.py --flow_model raft ...
3. 结果图像噪点多
现象:输出图像有明显噪声
降噪策略:
- 启用时域降噪:
python main.py --denoise ...
- 后处理滤波:
result = cv2.fastNlMeansDenoisingColored(result, None, 10, 10, 7, 21)
- 增加采样帧数:
python main.py --min_frames 100 ...
性能优化技巧
1. GPU加速实现
# 启用CUDA加速(需安装CuPy)
import cupy as cp
def gpu_integration(frames):frame_gpu = cp.asarray(frames[0])integrated = cp.zeros_like(frame_gpu)for frame in frames:frame_gpu = cp.asarray(frame)integrated += frame_gpureturn cp.asnumpy(integrated)
2. 多进程处理
from multiprocessing import Pooldef process_chunk(chunk):return processor.process_frames(chunk)with Pool(4) as p:results = p.map(process_chunk, frame_chunks)
3. 内存映射技术
# 处理大型视频文件
def stream_video(input_path):cap = cv2.VideoCapture(input_path)while True:ret, frame = cap.read()if not ret: breakyield framecap.release()processor.process_stream(stream_video("large_video.mp4"))
扩展应用与创意玩法
1. 光绘艺术创作
# 使用自定义画笔轨迹
python creative.py \--input dance.mp4 \--output light_painting.jpg \--brush_mask brushes/star.png
2. 天文摄影模拟
# 星轨合成模式
python main.py \--input stars/ \--output star_trails.jpg \--mode stars \--duration 3600 \--stack_mode maximum
3. 动态模糊增强
# 为静态图像添加动态效果
motion_blur = MotionBlurGenerator(angle=45, distance=30
)
blurred = motion_blur.apply(image)
学术背景与相关研究
基础论文
-
光流估计:
- Farnebäck G. “Two-Frame Motion Estimation Based on Polynomial Expansion” SCIA 2003
-
时域图像合成:
- Joshi N, et al. “Synthetic Aperture Photography” SIGGRAPH 2006
-
计算摄影:
- Raskar R, Tumblin J. “Computational Photography” AK Peters 2010
前沿技术
- 神经渲染:
- 使用GAN生成更真实的长曝光效果
- 事件相机:
- 基于事件的运动捕捉技术
- HDR合成:
- 结合曝光 bracketing 技术
项目路线图与展望
近期开发计划
-
深度学习集成:
- 基于UNet的运动分割
- Transformer-based时序建模
-
云服务支持:
- AWS Lambda无服务器处理
- Google Colab在线版本
-
移动端优化:
- iOS/Android应用开发
- 实时预览功能
长期发展方向
- 物理模拟:
- 基于流体动力学的光轨模拟
- 交互式编辑:
- 可调节的后期效果
- AR集成:
- 实时长曝光AR效果
Long-Exposure项目通过创新的算法设计和高效的工程实现,使得专业的长曝光摄影技术变得大众化。本文提供的技术解析和实战指南,将帮助用户快速掌握这一工具,并激发更多创意应用的可能性。随着计算摄影技术的发展,这类工具将继续拓展数字影像创作的边界。
相关文章:
【计算机视觉】OpenCV实战项目:Long-Exposure:基于深度学习的长时间曝光合成技术
Long-Exposure:基于深度学习的长时间曝光合成技术 项目概述与技术背景项目核心功能技术原理 环境配置与安装硬件要求建议详细安装步骤可选组件安装 实战应用指南1. 基础使用:视频转长曝光2. 高级模式:自定义光轨合成3. 批量处理模式 技术实现…...
CentOS 7 安装OpenJDK 17 JRE
CentOS 7 自带的java 版本为:java version "1.8.0_311", 有些软件的运行需要更高的java版本。CentOS 7 自带的默认仓库里 没有 OpenJDK 17,但是 Adoptium 项目(前身 AdoptOpenJDK)提供了稳定的 OpenJDK 17 版…...
C++从入门到实战(十三)C++函数模板与类模板初阶讲解
C从入门到实战(十三)C函数模板与类模板初阶讲解 前言一、为什么需要模板1. 函数重载的问题2. 泛型编程和模板的作用 二、函数模板2.1 函数模板格式2.2 函数模板的原理2.3 函数模板的实例化(1)隐式实例化:(2…...
CentOS服务器中如何解决内存泄漏问题?
内存泄漏并不是“爆炸性内存飙升”,而是程序申请了内存但没有释放,造成系统可用内存逐渐减少,直到用光。 表现形式: 系统空闲内存越来越少;swap频繁被占用;某些服务响应变慢甚至挂掉;重启服务后内存才释放。 内存泄漏的根源在哪…...
【Java项目脚手架系列】第三篇:Spring MVC基础项目脚手架
【Java项目脚手架系列】第三篇:Spring MVC基础项目脚手架 前言 在前面的文章中,我们介绍了Maven基础项目脚手架和JavaWeb基础项目脚手架。今天,我们将介绍Spring MVC项目脚手架,这是一个用于快速搭建Web应用的框架。 什么是Spr…...
chili3d调试笔记12 deepwiki viewport svg雪碧图 camera three.ts
xiangechen/chili3d | DeepWiki viewport阅读 🧠deep 我要把模型投影成dxf导出有什么办法 引用lookat 截图是如何实现的 明天接着搞 ---------------------------------------------------------------- 截图没什么用 搞个工程图模块可能才行 一个文件一行 忘…...
tinyrenderer笔记(Shader)
tinyrenderer个人代码仓库:tinyrenderer个人练习代码 前言 现在我们将所有的渲染代码都放在了 main.cpp 中,然而在 OpenGL 渲染管线中,渲染的核心逻辑是位于 shader 中的,下面是 OpenGL 的渲染管线: 蓝色是我们可以自…...
【奔跑吧!Linux 内核(第二版)】第1章:Linux 系统基础知识
笨叔 陈悦. 奔跑吧 Linux 内核(第2版) [M]. 北京: 人民邮电出版社, 2020. 文章目录 Linux 系统的发展历史Linux 发行版Red Hat LinuxDebian LinuxSuSE Linux优麒麟 Linux Linux 内核介绍宏内核和微内核Linux 内核概貌 Linux 系统的发展历史 Linux 系统诞…...
Spring + Shiro 整合的核心要点及详细实现说明
在 Spring 项目中集成 Apache Shiro 可以实现轻量级的安全控制(认证、授权、会话管理等)。以下是 Spring Shiro 整合的核心要点及详细实现说明: 一、Spring 与 Shiro 整合的核心组件 组件作用ShiroFilterFactoryBean创建 Shiro 过…...
已经写好论文的AI率降低
视频演示 https://www.bilibili.com/video/BV1v4VpzgEdc 提示词 你是我专门请来的“降维写作助手”,专门干一件事:把 AI 写得太“像 AI”的文字改得更像人写的。我们主要是处理论文、创作类内容,目标就是:不让检测工具一眼识破…...
AI教你学VUE——Deepseek版
一、基础阶段:打好Web开发基础 HTML/CSS基础 学习HTML标签语义化、CSS布局(Flex/Grid)、响应式设计(媒体查询、REM/VW单位)。资源推荐: MDN Web文档(免费):HTML | CSS实战…...
卷积神经网络基础(五)
6.3 Softmax-with-Loss 层 我们最后介绍输出层的softmax函数,之前我们知道softmax函数会将输入值正规化之后再输出。在手写数字识别的例子中,softmax层的输出如下: 输入图像通过Affi ne层和ReLU层进行转换,10个输入通过Softmax层…...
Go语言——string、数组、切片以及map
一、string、数组、切片代码 package mainimport "fmt"// 定义结构体 type student struct {id intname stringage intscore float32 }func main() {// 使用var声明切片var slice1 []intslice1 append(slice1, 1)slice1 append(slice1, 2)slice1 append(sl…...
线性回归有截距
In [ ]: ∑ i 1 m ( y i − x i T w ) 2 \sum _{i1}^{m}(y_{i}-x_{i}^{T}w)^{2} i1∑m(yi−xiTw)2 w ^ ( X T X ) − 1 X T y \hat {w}(X^{T}X)^{-1}X^{T}y w^(XTX)−1XTy In [ ]: 1 #如果有截距,求解时,需要梯度下降法求解w 和b …...
【基础】Python包管理工具uv使用全教程
一、uv简介 uv 是由 Astral(前身为 Basis)团队开发的 Python 包安装器和解析器,完全使用 Rust 语言编写。与传统 Python 工具不同,uv 将多个工具的功能整合到一个高性能的解决方案中,旨在提供更现代、更高效的 Python…...
事务(transaction)-上
事务概述 食物是一个最小的工作单元。在数据库当中,事务表示一件完整的事儿。一个业务的完成可能需要多条DML语句共同配合才能完成,例如转账业务,需要执行两条DML语句,先更新张三账户的余额,再更新李四账户的余额&…...
Python训练打卡Day17
无监督算法中的聚类 知识点 聚类的指标聚类常见算法:kmeans聚类、dbscan聚类、层次聚类三种算法对应的流程 实际在论文中聚类的策略不一定是针对所有特征,可以针对其中几个可以解释的特征进行聚类,得到聚类后的类别,这样后续进行解…...
【爬虫】码上爬第6题-倚天剑
堆栈入手: 全部复制的话,注意修改一些必要在地方: 通过s函数来获取请求头的加密参数 通过xxxxoooo来获取解密后的数据 js代码关键点: python代码我推荐使用这个网站: Convert curl commands to code 根据生成的代码…...
自定义SpringBoot Starter-笔记
SpringBoot Starter的介绍参考: Spring Boot Starter简介-笔记-CSDN博客。这里介绍如何自定义一个springBoot Starter。 1. 项目结构 创建一个 Maven 项目,结构如下: custom-spring-boot-starter-demo/ ├── custom-hello-jdk/ # jdk模…...
一周学会Pandas2 Python数据处理与分析-Pandas2数据类型转换操作
锋哥原创的Pandas2 Python数据处理与分析 视频教程: 2025版 Pandas2 Python数据处理与分析 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili Pandas 提供了灵活的方法来处理数据类型转换,以下是常见操作及代码示例: 1. 查看数据类型 …...
Java中常见的问题
1. SSO中的Cookie/Token生成与安全传递 生成Cookie/Token: Cookie:服务器通过Set-Cookie响应头生成,包含用户ID、过期时间等,需设置HttpOnly和Secure属性防止XSS和中间人攻击。Token(如JWT):使…...
【JEECG】BasicTable内嵌Table表格错位
功能说明: 解决代码生成后,本地内嵌Table表格样式错位。 优化前: 优化后: 解决方法: 对应的List.vue页面增加css样式调整。 <style lang"less" scoped>//内嵌表格margin边距覆盖:deep(.ant-table-…...
人工智能 计算智能模糊逻辑讲解
引言 在计算智能(Computational Intelligence)领域,模糊逻辑(Fuzzy Logic)作为一种处理不确定性与模糊性信息的数学工具,自 1965 年由洛夫特扎德(Lotfi Zadeh)提出以来,…...
基于SSM实现的健身房系统功能实现一
一、前言介绍: 1.1 项目摘要 随着社会的快速发展和人们健康意识的不断提升,健身行业也在迅速扩展。越来越多的人加入到健身行列,健身房的数量也在不断增加。这种趋势使得健身房的管理变得越来越复杂,传统的手工或部分自动化的管…...
spring详解-循环依赖的解决
Spring循环依赖 重点提示: 本文都快写完了,发现“丈夫” 的英文是husband… 在“②有AOP循环依赖” 改过来了,前面用到的位置太多了就没改。我是说怎么idea的hansband英文下面怎么有波浪线。各位能够理解意思就行,英文拼写不要过…...
【大模型面试每日一题】Day 10:混合精度训练如何加速大模型训练?可能出现什么问题?如何解决?
【大模型面试每日一题】Day 10:混合精度训练如何加速大模型训练?可能出现什么问题?如何解决? 📌 题目重现 🌟🌟 面试官:混合精度训练如何加速大模型训练?可能出现什么问…...
[学习]RTKLib详解:rtkcmn.c与rtkpos.c
文章目录 Part A、Rrtkcmn.c一、总体功能二、关键API列表三、核心算法实现四、函数功能与参数说明1. uniqnav2. lsq3. filter4. matmul5. satazel6. ionmapf7. geodist8. timeadd9. dgetrf_ / dgetri_(LAPACK接口) 五、工作流程说明4.1 模块在RTKLib中的…...
cookie/session的关系
什么是cookie,session 我们平时去医院看病时,从进医院那一刻,我们最开始要做的就是挂号(需要我们填写表格,记录一些核心信息,医生会把这些信息录入电脑,并给我办一个就诊卡,卡里面只…...
Linux(十四)进程间通信(IPC),管道
一、进程间通信 (一)系统介绍进程间通信 进程间通信(IPC)介绍 小编插入的这篇文章详细介绍了进程间通信的一些内容,大家可以一起学习。 (二)进程间通信的方法 1、管道 2、信号量 3、共享…...
Nmap 工具的详细使用教程
Nmap(Network Mapper)是一款开源且功能强大的网络扫描和安全审计工具。它被广泛用于网络发现、端口扫描、操作系统检测、服务版本探测以及漏洞扫描等。 官方链接: Nmap 官方网站: https://nmap.org/Nmap 官方文档 (英文): https://nmap.org/book/man.h…...
Vue 自定义指令输入校验过滤
/*** 过滤字符串* param {*} filterCharRule* param {*} newVal* returns*/ function filterCharForValue(filterCharRule, newVal) {if(!filterCharRule || !newVal) returnconst isArray filterCharRule instanceof Arrayconst isRegExp filterCharRule instanceof RegExpi…...
OpenGl实战笔记(2)基于qt5.15.2+mingw64+opengl实现纹理贴图
一、作用原理 1、作用:将一张图片(纹理)映射到几何体表面,提升视觉真实感,不增加几何复杂度。 2、原理:加载图片为纹理 → 上传到 GPU;为顶点设置纹理坐标(如 0~1 范围)&…...
tinyrenderer笔记(透视矫正)
tinyrenderer个人代码仓库:tinyrenderer个人练习代码 引言 还要从上一节知识说起,在上一节中我为了调试代码,换了一个很简单的正方形 obj 模型,配上纹理贴图与法线贴图进行渲染,得了下面的结果: what&…...
c++类【发展】
类的静态成员(用static声明的成员),在声明之外用例单独的语句进行初始化,初始化时,不再需要用static进行限定。在方法文件中初始化。以防重复。 特殊成员函数 复制构造函数: 当使用一个对象来初始化另一个对象…...
玛格丽特鸡尾酒评鉴,玛格丽特酒的寓意和象征
玛格丽特鸡尾酒会有独特的风味,而且还会有一个比较吸引人的背后故事。在目前的鸡尾酒界就会占据着很重要的地位,不仅是味蕾的盛宴,同样也会拥有深厚的情感。 玛格丽特由龙舌兰酒、柠檬汁和君度橙酒调制而成,将三者巧妙地结合在一起…...
关于Java多态简单讲解
面向对象程序设计有三大特征,分别是封装,继承和多态。 这三大特性相辅相成,可以使程序员更容易用编程语言描述现实对象。 其中多态 多态是方法的多态,是通过子类通过对父类的重写,实现不同子类对同一方法有不同的实现…...
SecureCrt设置显示区域横列数
1. Logical rows //逻辑行调显示区域高度的 一般超过50就全屏了 2. Logical columns //逻辑列调显示区域宽度的 3. Scrollback buffer //缓冲区大小...
【PhysUnits】1 SI Prefixes 实现解析(prefix.rs)
一、源码 // prefix.rs //! SI Prefixes (国际单位制词头) //! //! 提供所有标准SI词头用于单位转换,仅处理10的幂次 //! //! Provides all standard SI prefixes for unit conversion, handling only powers of 10.use typenum::{Z0, P1, P2, P3, P6, P9, P12, …...
【Python】--实现多进程
import multiprocessing import time # 1.定义好函数 # codeing def coding():for i in range(10):print(f正在编写第{i}行代码)time.sleep(0.2)# music def music():for i in range(10):print(f正在听第{i}首歌曲)time.sleep(0.2)单任务 # 单任务--时间为4s多 if __name__ _…...
计算机视觉与深度学习 | 基于数字图像处理的裂缝检测与识别系统(matlab代码)
🍅🍅🍅🍅🍅🍅🍅🍅🍅🍅🍅🍅🍅🍅🍅🍅 基于数字图像处理的裂缝检测与识别系统 🥦🥦🥦🥦🥦🥦🥦🥦🥦🥦🥦🥦🥦**系统架构设计****1. 图像预处理**目标:消除噪声+增强裂缝特征**2. 图像分割**目标:提取裂缝区域**3. 特征…...
嵌入式MCU语音识别算法及实现方案
在嵌入式MCU(微控制器单元)中实现语音识别,由于资源限制(如处理能力、内存、功耗等),通常需要轻量级算法和优化技术。以下是常见的语音识别算法及实现方案: 一、传统语音识别算法 动态时间规整&…...
【C++核心技术深度解析:从继承多态到STL容器 】
一、C继承机制:代码复用与层次设计 1. 继承基础概念 什么是继承? 继承是面向对象编程的核心机制,通过class Derived : public Base让子类(派生类)复用父类(基类)的属性和方法,同时…...
【C/C++】new关键字解析
📘 C 中 new 关键字详解笔记 🔹 什么是 new? new 是 C 中用于动态内存分配的关键字,它在堆内存中为对象或变量分配空间,并返回对应类型的指针。 与 C 语言中的 malloc 相比,new 更安全、更方便ÿ…...
C++高性能内存池
目录 1. 项目介绍 1. 这个项目做的是什么? 2. 该项目要求的知识储备 2. 什么是内存池 1. 池化技术 2. 内存池 3. 内存池主要解决的问题 4.malloc 3. 先设计一个定长的内存池 4.高并发内存池 -- 整体框架设计 5. 高并发内存池 -- thread cache 6. 高并发内存池 -- …...
chili3d调试笔记12 deepwiki viewport
xiangechen/chili3d | DeepWiki viewport阅读 🧠deep 我要把模型投影成dxf导出有什么办法 引用lookat 截图是如何实现的 明天接着搞 ----------------------------------------------------------------...
前端取经路——JavaScript修炼:悟空的九大心法
大家好,我是老十三,一名前端开发工程师。JavaScript如同孙悟空的七十二变,变化多端却又充满威力。本篇文章我将带你攻克JS中最令人头疼的九大难题,从闭包陷阱到原型链继承,从异步编程到性能优化。每个难题都配有实战代…...
从零实战:在Xilinx Zynq PS端移植VxWorks 6.9系统
一、环境准备与工具链搭建 1.1 硬件配置清单 开发板: Zynq-7000系列(推荐ZedBoard或ZCU102)调试工具: USB-JTAG调试器(如Xilinx Platform Cable USB II)存储介质: SD卡(建议Class 10以上)1.2 软件环境 工具版本作用Vivado2022.1FPGA硬件设计Vitis2022.1系统集成开发Wind…...
网工实验——RIP配置
网络拓扑图 配置 1.为每台设备配置ip地址 AR4 <Huawei>u t m <Huawei>sys [Huawei]sysname AR4 [AR4]int g0/0/0 [AR4-GigabitEthernet0/0/0]ip address 172.16.1.1 24 [AR4-GigabitEthernet0/0/0]q#下面配置换回口,模拟网 [AR4]int LoopBack 0 [AR4…...
前端流行框架Vue3教程:14. 组件传递Props效验
(4) 组件传递Props效验 Vue组件可以更细致地声明对传入的props的校验要求 ComponentA.vue <script> import ComponentB from ./ComponentB.vue; export default {components: {ComponentB},data() {return {title: 标题}} } </script> <template><h3&g…...
电子电器架构 --- 网关ECU中采用多CPU解决方案来实现网关功能
我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 钝感力的“钝”,不是木讷、迟钝,而是直面困境的韧劲和耐力,是面对外界噪音的通透淡然。 生活中有两种人,一种人格外在意别人的眼光;另一种人无论…...