$ 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.pswp.cn/news/375550.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/375550.shtml
英文地址,請注明出處:http://en.pswp.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;再對…