$ npm install opencv ? 你试试?! 在windows环境下,使用node.js调用opencv攻略

博主之前写过一篇文章《html5与EmguCV前后端实现——人脸识别篇》,叙述的是opencv和C#的故事。最近在公司服务器上更新了一套nodejs环境,早就听闻npm上有opencv模块,便欲部署之。然而opencv的部署似乎从来都不会那么顺利......

找模块上https://www.npmjs.com/  (在大天朝请自行加点FQ技能!)搜索opencv,一眼就知道该用peter桑的模块了...

然后点进去,似乎也很美好!

 

然而,你要是windows的操作系统,你试试吧。

$ npm install opencv

 

我在寻找解决方案的时候,发现了模块作者的一个留言。。。

大致是说,作者写这个模块的时候就没考虑windows,然后如果有同学能成功跑起来,那么他很乐意添加一些兼容windows的东西。。。。。。

万幸的是,还是有很多机智的小伙伴的去帮助Peter大大的。那么吐槽结束,开始部署环境。

 


 

1) 首先,请确认你的node.js版本能跑peter大大的模块(可以去github查,或者直接装个最新的)

2) 安装正确版本的opencv,并且配置opencv环境变量。nodejs的opencv模块目前支持的是2.4.9版本的opencv。要是你看到这篇文章是很久以后,可以去github上通过.pc文件确认opencv的版本。

3) 部署pkg-config

  1. 下载解压下图三个文件,到这里可以下载。在对应win64/win86文件夹里的dependencies下面找。(如果被墙了,同学们就自己百度这些文件吧,pkg-config的安装能百度到)

  

  2.配置环境变量,分别把三个文件夹的bin文件夹加入环境变量就好了

  3.为.pc文件配置环境变量。新建一个PKG_CONFIG_PATH的环境变量指向.pc文件所在文件夹。这里的.pc文件就是前面说到过的,nodejs-opencv模块里面有,稍作修改就能用了,x86/x64只要一个文件就好了。

4)然后需要安装node gyp模块 这步很重要也很麻烦- -。。。你其实还是需要装python和visual studio......

  1. 安装python2.7.3 (和opencv一样,装最新的3.0就玩不起来了),配置python环境变量。

  2. 安装visual studio 2013 (express就可以了),安装过程比较慢。

  3. win7 64位系统要装个补丁,以上在gyp的github上面有说明,还是蛮详细的。

  4. npm install -g node-gyp

5)从github下载nodejs-opencv整个文件夹。

6)nodejs 命令 

npm install

7) npm install opencv 还是不行的- -,好像还是只能编译github的上作者的文件,要是哪位大神知道解决方案,请留言,谢谢啦。

npm install 之后其实就可以用啦,人脸识别的什么都不是问题。这里其实就是利用了nodejs可以调用c/c++文件的特性,只是在windows上编译还是有些小复杂。

博主小站 http://jsonic.net/

转发请注明出处:http://www.cnblogs.com/Arthus/p/4791237.html

转载于:https://www.cnblogs.com/Arthus/p/4791237.html

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

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

相关文章

android学习——GestureDetector.OnGestureListener 详解

Android Touch Screen 与传统Click Touch Screen不同,会有一些手势(Gesture),例如Fling,Scroll等等。这些Gesture会使用户体验大大提升。Android中的Gesture识别(detector)是通过GestureDetector.OnGestureListener接口实现的。 首先&#xf…

关于安卓一键分享的,急求帮助!

问题描述现在要做一个项目,设置里面点击一个按钮就可以分享,有三个分享平台,新浪微博,微信和微信朋友圈现在的问题是我要在三个平台分享的内容不同,在新浪微博中分享的是一段文字叙述和一个网页链接;而在微…

和可被 K 整除的子数组

给定一个整数数组 A,返回其中元素之和可被 K 整除的(连续、非空)子数组的数目。 示例: 输入:A [4,5,0,-2,-3,1], K 5 输出:7 解释: 有 7 个子数组满足其元素之和可被 K 5 整除:…

前端进阶路线图

CSS不能编程?用Less、Sass、Stylus、甚至直接用 Absurd,框架除了Bootstrap还有很多。JS写多了很麻烦?jQuery。移动开发?Zepto.js。结构不好?找框架,Backbone.js是MVC,AngularJS和Ember.js是MVVM…

流媒体直播服务LSS

流媒体直播服务LSS posted on 2014-10-22 11:23 实验室 阅读(...) 评论(...) 编辑 收藏 转载于:https://www.cnblogs.com/labs/p/4042641.html

Win7安装vs2010失败

提示: --------------------------------------------------------------------------------------------------------------------------------------- 解决方法:开始运行中regedit打开注册表找到HKEY_LOCAL_MACHINE/System/CurrentControlSet/Control …

调光设备术语:调光曲线(转)

源:调光设备术语:调光曲线 核心提示:调光曲线是调光设备重要的参数之一,它直接影响到了灯光输出的效果,是数字化调光设备性能的体现。上面这句话包含了三点内容,我们逐条解析。 调光曲线是调光设备重要的参…

深入浅出理解QTimeLine类

网上找了下QTimeLIne类的介绍,要么就是代码一贴自己看去,要么就是说不到重点,正巧自己项目遇到这个类,在这里写一下,给需要的同学看下。 因为我最近需要有动画方面配合时间间隔触发QGraphicsView框架的需求&#xff0c…

0909编译原理

1.编译原理学什么? 编译原理是计算机专业的一门重要专业课,旨在介绍编译程序构造的一般原理和基本方法。内容包括语言和文法、词法分析、语法分析、语法制导翻译、中间代码生成、存储管理、代码优化和目标代码生成。 2.为什么学编译原理? 这门…

何为动态绑定(转)

动态绑定只是叫法不同,你可以理解为多态!例如,有一个抽像fruit水果父类,其中定义了一个方法抽像eat方法,而apple继承fruit并实现fruit的eat方法,而banana继承fruit并实现fruit的eat方法,外部调用…

继承与多态

第十七讲 A)构造方法的重载:只需看参数即可。如果想在一个构造方法中调用另外一个构造方法,那么可以用this()的方式调用,this()括号中的参数表示目标构造方法的参数。this()必须要作为构造方法的第一条语句。 B)继承&a…

c++学习心得

c是大一开始接触的一门新的语言,说老实话当时学的并不好兴趣指数5颗星中只有3颗。但是既然是学这方面的,还是好好听课学习吧。下面简单的说一下c的一些学习心得吧! c是什么?c是一种面向对象的程序设计语言。c是c的一种提高&#x…

实现strstr()

实现 strStr() 函数。 给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。 示例 1: 输入: haystack "hello", needle "ll" 输出: 2示例…

有效电话号码

给定一个包含电话号码列表(一行一个电话号码)的文本文件 file.txt,写一个 bash 脚本输出所有有效的电话号码。 你可以假设一个有效的电话号码必须满足以下两种格式: (xxx) xxx-xxxx 或 xxx-xxx-xxxx。(x 表示一个数字…

JSP中RequestDispatcher的用法

RequestDispatcher是一个Web资源的包装器&#xff0c;可以用来把当前request传递到该资源&#xff0c;或者把新的资源包括到当前响应中。RequestDispatcher接口中定义了两个方法&#xff1a;include/forward 由于<jsp:include>只能指定固定的jsp文件名&#xff0c;不能动…

TCP/IP三次握手与四次握手

原文地址 http://blog.csdn.net/whuslei/article/details/6667471 http://blog.csdn.net/wo2niliye/article/details/48447933 建立TCP需要三次握手才能建立&#xff0c;而断开连接则需要四次握手。整个过程如下图所示&#xff1a; 先来看看如何建立连接的。 首先Client端发送连…

vim支持nginx语法高亮

下载nginx源码&#xff0c;解压之后&#xff0c;将contribu/vim/*拷贝到~/.vim/目录&#xff0c;如果没有~/.vim/目录&#xff0c;则创建即可。 cp -r contrib/vim/* ~/.vim/或 mkdir -p ~/.vim/ cp -r contrib/vim/* ~/.vim/此时再打开conf/nginx.conf就可以看到已经语法高亮…

Delphi 正则表达式语法(4): 常用转义字符与 .

Delphi 正则表达式语法(4): 常用转义字符与 . // \d 匹配所有数字, 相当于 [0-9] varreg: TPerlRegEx; beginreg : TPerlRegEx.Create(nil);reg.Subject : 期待Delphi 2008 for Win32&#xff01;;reg.RegEx : \d;reg.Replacement : ◆;reg.ReplaceAll;ShowMessage(reg.Subje…

C语言操作mysql

php中 mysqli, pdo 可以用 mysqlnd 或 libmysqlclient 实现 前者 从 php 5.3.0起已内置到php中, 并且支持更多的特性&#xff0c;推荐用 mysqlnd mysqlnd &#xff0c; libmysqlclient 对比&#xff1a;http://php.net/manual/en/mysqlinfo.library.choosing.php mysqlnd 目前是…

Hadoop DistributedCache分布式缓存的使用

转载请注明&#xff1a;http://www.cnblogs.com/demievil/p/4059141.html 我的github博客&#xff1a;http://demievil.github.io/ 做项目的时候遇到一个问题&#xff0c;在Mapper和Reducer方法中处理目标数据时&#xff0c;先要去检索和匹配一个已存在的标签库&#xff0c;再对…