如何在前端项目中使用opencv.js | opencv.js入门

news2024/11/26 15:50:10

系列文章目录

  1. 如何在前端项目中使用opencv.js | opencv.js入门
  2. 如何使用tensorflow.js实现面部特征点检测
  3. tensorflow.js 如何从 public 路径加载人脸特征点检测模型
  4. tensorflow.js 如何使用opencv.js通过面部特征点估算脸部姿态并绘制示意图
  5. tensorflow.js 使用 opencv.js 将人脸特征点网格绘制与姿态估计线绘制结合起来,以获得更高的帧数
  6. 结合 tensorflow.js 、opencv.js 与 Ant Design 创建美观且高性能的人脸动捕组件并发布到InsCode

项目地址(github):https://github.com/couchette/simple-react-face-fandmark-detection
项目地址(gitcode):https://gitcode.com/qq_41456316/simple-react-face-fandmark-detection

文章目录

  • 系列文章目录
  • 前言
  • 一、OpenCV.js是什么?
  • 二、使用步骤
    • 1.获取OpenCV.js
    • 2. 将OpenCV.js复制到public目录下
    • 3. 在HTML中导入脚本
    • 4. 测试是否导入成功
  • 总结


前言

随着 Web 技术的发展,前端开发领域不断涌现出新的技术和工具,其中之一就是 OpenCV.js。OpenCV.js 是 OpenCV(开放源代码计算机视觉库)的 JavaScript 版本,它可以在 Web 浏览器中运行,使得利用计算机视觉技术实现图像处理、分析和识别成为可能。


一、OpenCV.js是什么?

OpenCV.js 是 OpenCV 的 JavaScript 版本,提供了对 OpenCV 库的 JavaScript 绑定。它允许开发者在前端项目中直接使用 OpenCV 库的功能,而无需依赖于后端服务器。这为在 Web 环境下进行图像处理和计算机视觉任务提供了便利。

二、使用步骤

1.获取OpenCV.js

从如下网址下载OpenCV.js,如果你需要指定的OpenCV.js版本可以修改对应的版本号。

https://docs.opencv.org/4.5.0/opencv.js

2. 将OpenCV.js复制到public目录下

在public路径下添加opencv.js,如下图所示
请添加图片描述

3. 在HTML中导入脚本

在HTML中添加脚本导入代码,修改HTML内容如下所示:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <link rel="icon" href="%PUBLIC_URL%/favicon.ico" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <meta name="theme-color" content="#000000" />
    <meta
      name="description"
      content="Web site created using create-react-app"
    />
    <link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" />
    <!--
      manifest.json provides metadata used when your web app is installed on a
      user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
    -->
    <link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
    <!--
      Notice the use of %PUBLIC_URL% in the tags above.
      It will be replaced with the URL of the `public` folder during the build.
      Only files inside the `public` folder can be referenced from the HTML.

      Unlike "/favicon.ico" or "favicon.ico", "%PUBLIC_URL%/favicon.ico" will
      work correctly both with client-side routing and a non-root public URL.
      Learn how to configure a non-root public URL by running `npm run build`.
    -->
    <title>React App</title>
    <script>
      var cv = null;
      function onOpenCvReady() {
        cv = window.cv;
        console.log("opencv load succeed.");
      }
    </script>
    <script
      async
      src="./opencv.js"
      onload="onOpenCvReady();"
      type="text/javascript"
    ></script>
  </head>
  <body>
    <noscript>You need to enable JavaScript to run this app.</noscript>
    <div id="root"></div>
    <!--
      This HTML file is a template.
      If you open it directly in the browser, you will see an empty page.

      You can add webfonts, meta tags, or analytics to this file.
      The build step will place the bundled scripts into the <body> tag.

      To begin the development, run `npm start` or `yarn start`.
      To create a production bundle, use `npm run build` or `yarn build`.
    -->
  </body>
</html>

4. 测试是否导入成功

修改App.js如下

import React, { useEffect } from "react";
function App() {
  useEffect(() => {
    console.log(window.cv);
  }, []);
  return <div />;
}
export default App;

npm i 安装项目依赖
npm start 运行项目,查看终端结果如下
请添加图片描述


总结

通过使用 OpenCV.js,你可以在前端项目中轻松地利用计算机视觉技术。本文介绍了如何获取 OpenCV.js 并将其集成到项目中,并给出了简单的示例代码。希望本文能够帮助你入门 OpenCV.js,并在前端开发中发挥其强大的功能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1587659.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

docker 部署最新版 MySQL 实战

文章目录 前言简介第一步&#xff1a;搜索并拉取镜像1.1 搜索镜像1.2 拉取MySQL镜像1.3 查看MySQL镜像 第二步&#xff1a;生成MySQL容器2.1 运行MySQL镜像2.2 查看运行容器 第三步&#xff1a;验证服务可用性3.1 关闭防火墙3.2 连接MySQL 总结 前言 请各大网友尊重本人原创知…

独家原创 | Matlab实现INFO-BiTCN-BiGRU-Attention多输入单输出回归预测

独家原创 | Matlab实现INFO-BiTCN-BiGRU-Attention多输入单输出回归预测 目录 独家原创 | Matlab实现INFO-BiTCN-BiGRU-Attention多输入单输出回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现INFO-BiTCN-BiGRU-Attention向量加权算法优化双向时间卷积…

蓝桥杯 迷宫(bfs)

0迷宫 - 蓝桥云课 (lanqiao.cn) 思路 &#xff1a; 最后一定要倒数输出路径&#xff0c;因为从前面输出你会找不到下一个到底是谁&#xff0c;bfs过程是找最小路径&#xff0c;最后输出是去找方向&#xff0c;但是此题作为一个填空题&#xff0c;我直接手写&#xff08;开玩笑…

每日一题 — 将 x 减到 0 的最小操作数

思路&#xff1a; 题目要求是让我们从数组的最左端和最右端进行操作&#xff0c;这样的话解题的难度大大提升&#xff0c;我们可以用 正难则反 的思想&#xff1a; 题目中要求是减去数组中的数刚好等于X&#xff0c;我们可以转换成 数组中某一段的和等于 数组的总长减去X(sum -…

vue对比react18

1.模板语法-——>jsx JSX表达式用{}包裹&#xff0c;vue模板表达式用{{}}包裹&#xff0c;其余一致。 注意:if语句、switch语句、变量声明属于语句&#xff0c;不是表达式&#xff0c;不能出现在{}或{{}}中 <!--vue--> <template><div><p>I have…

Nessus【部署 02】Windows部署漏洞扫描工具Nessus详细过程分享(下载+安装+注册+激活)

这里写目录标题 1.下载安装1.1 下载1.2 安装 2.添加用户注册插件安装2.1 添加用户2.2 注册2.3 插件安装 3.安装总结 1.下载安装 1.1 下载 1.2 安装 双击Nessus-10.7.1-x64.msi进行安装 这个只能接受&#xff1a; 选择安装路径&#xff1a; 确认安装&#xff1a; 安装ing&…

图形学基础:二维三维刚体的移动、缩放和旋转矩阵

一、二维 1.1 缩放矩阵 x&#xff0c;y分别表示在x轴&#xff0c;y轴缩放的倍数 示例&#xff1a; 点(2,1)在x&#xff0c;y轴上分别缩放x倍&#xff0c;y倍 1.2 平移矩阵 x&#xff0c;y分表表示在x轴&#xff0c;y轴上移动的距离 示例&#xff1a;点&#xff08;2,1&#xf…

每日OJ题_BFS解决FloodFill④_力扣130. 被围绕的区域

目录 力扣130. 被围绕的区域 解析代码 力扣130. 被围绕的区域 130. 被围绕的区域 难度 中等 给你一个 m x n 的矩阵 board &#xff0c;由若干字符 X 和 O &#xff0c;找到所有被 X 围绕的区域&#xff0c;并将这些区域里所有的 O 用 X 填充。 示例 1&#xff1a; 输入&…

【MySQL】数据库节点的平滑扩容方案

一、背景 众所周知&#xff0c;数据库很容易成为应用系统的瓶颈。单机数据库的资源和处理能力有限&#xff0c;在高并发的分布式系统中&#xff0c;可采用分库分表突破单机局限。本文来探讨下数据库节点的平滑扩容方案 二、节点扩容 2.1、什么是节点扩容 扩容一般是指水平分…

test4122

欢迎关注博主 Mindtechnist 或加入【Linux C/C/Python社区】一起学习和分享Linux、C、C、Python、Matlab&#xff0c;机器人运动控制、多机器人协作&#xff0c;智能优化算法&#xff0c;滤波估计、多传感器信息融合&#xff0c;机器学习&#xff0c;人工智能等相关领域的知识和…

Matlab 实时读取串口并绘图

Matlab 实时读取串口并绘图 Vofa Vofa 是一个很好的跨平台上位机软件&#xff0c;但是它无法保存数据&#xff0c;而且作者也并没有要继续更新的意思&#xff0c;保存数据功能应该是遥遥无期了。因此本文使用 Matlab 实时读取串口数据&#xff0c;并使用 plot 函数绘制。 vo…

【vscode】在本地加载远端环境并开发

【vscode】在本地利用远程服务器显卡跑代码 写在最前面vscode&#xff1a;远程到本地1、安装ssh插件2、添加服务器连接配置3、连接服务器4. SSH配置5. 在ssh中安装python解释器 vscode基本操作 &#x1f308;你好呀&#xff01;我是 是Yu欸 &#x1f30c; 2024每日百字篆刻时光…

Grafana告警(邮件)自定义模板配置

一年前给客户部署配置过grafana&#xff0c;告警配置也是用的原始的&#xff0c;客户在使用过程中只需要一些核心点信息&#xff0c;想要实现这个就需要用Grafana的自定义告警模板以及编辑邮件模板。 通知模板 模板信息的配置中查阅了相关资料&#xff0c;自己组装了一套&…

Android Framework学习笔记(3)----Binder

什么是Binder&#xff1f; Binder是linux IPC机制的其中一种。它贯穿于应用层&#xff0c;framework层&#xff0c;以及linux Core层。 什么是IPC? 跨进程通信&#xff0c; InterProcess Communication. IPC机制都有哪些&#xff1f; 通道信号量消息队列BinderSocket共享内…

(Java)数据结构——排序(第一节)堆排序+PTA L2-012 关于堆的判断

前言 本博客是博主用于复习数据结构以及算法的博客&#xff0c;如果疏忽出现错误&#xff0c;还望各位指正。 堆排序&#xff08;Heap Sort&#xff09;概念 堆排序是一种基于堆数据结构的排序算法&#xff0c;其核心思想是将待排序的序列构建成一个最大堆&#xff08;或最小…

【C语言基础】:文件操作详解(后篇)

文章目录 一、文件的顺序读写1.1 顺序函数读写函数介绍1.2 fgetc函数和fputc函数1.3 fputs函数和fgets函数1.4 fprintf函数和fscanf函数1.5 fwrite函数和fread函数 二、文件的随机读写2.1 fseek函数2.2 ftell函数2.3 rewind函数 三、文件读取结束的判定3.1 feof函数 四、文件缓…

Linux操作系统的学习

Linux系统的目录结构 / 是所有目录的顶点目录结构像一颗倒挂的树 Linux常用命令 常见命令 序号命令对应英文作用1lslist查看当前目录下的内容2pwdprint work directory查看当前所在目录3cd [目录名]change directory切换目录4touch [文件名]touch如果文件不存在&#xff0c;新…

4. 依赖查找依赖注入

本小节源码&#xff1a;Spring-DI 1. 依赖查找 前面两个小节我们学习了如何将 Bean 对象分别以配置文件与注解的方式存入 Spring 中&#xff0c;然而通过 Bean 从 Spring 容器中取出的过程其实就是依赖查找&#xff0c;这里我简单归纳一下各种依赖查找的方式。 1.1 通过beanI…

【MySQL】索引篇

SueWakeup 个人主页&#xff1a;SueWakeup 系列专栏&#xff1a;学习技术栈 个性签名&#xff1a;保留赤子之心也许是种幸运吧 本文封面由 凯楠&#x1f4f8;友情提供 目录 本系列传送门 1. 什么是索引 2. 索引的特性 3. 索引的分类 4. 索引的优点及缺点 优点 缺点 5.…

FPGA基于VCU的H265视频压缩,HDMI2.0输入,支持4K60帧,提供工程源码+开发板+技术支持

目录 1、前言免责声明 2、相关方案推荐我这里已有的视频图像编解码方案 3、详细设计方案设计框图FPGA开发板视频输入Video PHY ControllerHDMI 1.4/2.0 Receiver SubsystemVideo Processing SubsystemVideo Frame Buffer WriteZynq UltraScale VCUPetaLinux 系统制作VLC播放器工…