$ npm install opencv ? 你试试?! 在windows环境下,使用node.js调用opencv攻略
博主之前写过一篇文章《html5与EmguCV前后端实现——人脸识别篇》,叙述的是opencv和C#的故事。最近在公司服务器上更新了一套nodejs环境,早就听闻npm上有opencv模块,便欲部署之。然而opencv的部署似乎从来都不会那么顺利......
找模块上https://www.npmjs.com/ (在大天朝请自行加点翻墙技能!)搜索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
随机推荐
- [Design Pattern] Facde Pattern 简单案例
Facade Pattern, 即外观模式,用于隐藏复杂的系统内部逻辑,提供简洁的接口给客户端调用,属于结构类的设计模式.我会将其名字理解为,门户模式. 下面是 Facade Pattern 的一个简 ...
- Selenium IDE整理
安装 Step1: 下载Firefox浏览器 http://www.firefox.com.cn/ Step2: 安装Selenium IDE插件 http://seleniumhq.org/down ...
- Java8 时间 API
前言 Java8 中最为人津津乐道的新改变恐怕当属函数式 API 的加入.但实际上,Java8 所加入的新功能远不止这个. 本文将基于<Java SE8 for the Really Impat ...
- WIndows系统下mysql-noinstall安装配置
环境: Windowsmysql-noinstall-5.0.37-win32.zip 一.下载MySQL http://www.mysql.com/downloads 二.安装过程 1.解压缩mys ...
- Windows Live Writer Install Faied
win7安装Windows Live Writer软件时失败,并且提示错误代码0x80190194的问题 Windows Live Writer是一个很好的博客写作工具,单机就可以使用了,还可以用于同 ...
- 如何为Myeclipse手工添加dtd支持
一.引言 在MyEclipse中开发三大框架的项目时候经常会写一些配置的xml文件,例如:Struts2的struts.xml和Hibernate的hibernate.cfg.xml.Spring的a ...
- .NET注册页面代码
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI ...
- linux groupmems命令
Because users group membership is defined in two different locations, it can be difficult to find ou ...
- 进程ps、kill 、grep
linux上进程有5种状态: 1. 运行(正在运行或在运行队列中等待) 2. 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号) 3. 不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有 ...
- Swift中面向协议的编程
什么是面向协议的编程? 面向协议的编程,是一种编程范式. 编程范式,是一个计算机科学用语.维基百科中的解释是,计算机编程的基本风格或典型模式.通俗来说,就是解决某一个问题的方法不同方法和思路. 像大家 ...