跳到主要内容

认识

2024年02月02日
柏拉文
越努力,越幸运

一、认识


OpenCV (Open Source Computer Vision Library) 是一个开源的计算机视觉和机器学习软件库。旨在提供一个易于使用的计算机视觉基础设施,帮助人们实现复杂的视觉分析任务。提供了一个高性能的图像处理和计算机视觉库,能够处理海量的图像数据,并实时响应。OpenCV 通过提供大量预制的视觉算法和处理技巧,大大简化了计算机视觉应用的开发流程。它解决了从数据前处理、特征提取、目标识别到后处理等一系列视觉任务中的各种问题,使开发者能够更专注于算法的改进和创新而非从零开始构建。OpenCV 的主要用途有:

  1. 图像处理:包括图像的基本操作(如读取、显示和保存图像)、图像变换(如缩放、平移和旋转)、图像滤波等

  2. 特征检测与描述:检测图像中的关键点(如边缘、角点等)并对这些特征进行描述和匹配,用于图像识别和定位

  3. 摄像头和视频处理:处理来自摄像头的实时视频流,进行视频分析和物体追踪

  4. 机器学习OpenCV内置了一些机器学习算法(如K-最近邻算法、支持向量机SVM、决策树等),用于图像分类和识别;

  5. 人脸识别和人脸检测:通过特定算法识别人脸的位置和个体

  6. 物体检测:识别图像中的特定对象,如人、车辆、标志等

opencv.jsOpenCVOpen Source Computer Vision Library)的官方 JavaScript端口。它是一个面向实时计算机视觉的开源库。OpenCV 被广泛应用于各种图像处理、视频分析和机器视觉领域。通过将 OpenCV 移植到 JavaScript 环境,OpenCV.jsweb 开发者提供了强大的图像处理和视觉分析工具,使其能够在浏览器端直接应用这些功能,而无需后端处理。

OpenCV.js 是利用 Emscripten 工具编译产生的。Emscripten 是一个开源的 LLVM/Clang(一套编译器工具链)到 JavaScript 的编译器,可以将 C/C++ 代码转换为高效能的 JavaScript 代码。通过这种方式,OpenCV.js 实际上在浏览器中运行的是转换后的 C++ OpenCV 代码,因此在功能和性能上尽可能接近原生 OpenCV 库。

由于是直接编译自 C++ OpenCV 库,OpenCV.js 继承了其丰富的图像处理和分析算法。在浏览器端执行这些算法,可极大地利用客户端资源,降低服务器端的计算和带宽负荷。不过,它也继承了一些限制,例如处理大型图像或执行复杂算法时,在某些设备上可能会遇到性能瓶颈。

综上,OpenCV.js 通过在客户端提供强大的图像处理能力,为 web 开发带来了广阔的应用前景,从简单的图像增强和滤波,到复杂的图像识别和分析等。但是,需要注意的是,开发者在选择使用 OpenCV.js 时,也要考虑到客户端执行环境的多样性和性能限制。

二、引用


2.1 JS 引用

<script>
function onOpenCvReady() {
cv['onRuntimeInitialized'] = () => {
// 之后逻辑
};
}
</script>

<script
async
src="https://docs.opencv.org/4.5.0/opencv.js"
onload="onOpenCvReady();"
type="text/javascript"
></script>

2.2 JS WASM 引用

2.3 Service Worker 引用