在 Windows 上修改與安裝 ropencv 簡易測試套件

Github 上的 ropencv 是一個意圖建立 R 軟體與 OpenCV C++ 影像處理與偵測函數庫介接連結的測試套件,目前只提供一個簡單的 showImage 函數,原始碼裡面也沒有提供 Windows 的安裝資料。但是以後想要整合 R 軟體與 OpenCV 的人,可以從 ropencv 的原始碼得到很多的啟示。

我參考 Rvision 套件中的 Windows 編譯設定,嘗試修改了 ropencv,利用 ROpenCVLite 協助安裝好的 Windows 版 OpenCV,已經可以在 Windows 上順利編譯並安裝測試 ropencv。

OpenCV  C++ 函數庫在 Linux/Mac 上的安裝比較沒有問題,但是在 Windows 上由於有 mingw, Dev-C++, Visual Studio C++ 等多套 C++ 編譯器,在編譯時的修改與安裝頗麻煩,與 R 軟體的介接至今也只有部分達成。

這個套件中的示範 C++ 程式可以提供有意介接 R 與 OpenCV 者的參考。

Step 1. 請先執行我之前文章「Rvision OpenCV 套件介紹: 擷取並顯示 Webcam 影像 (Part 1)」裡面的 Step1 到 Step4 安裝好 ROpenCVLite 的步驟。

ROpenCVLite 套件的目的,就是幫忙抓取並編譯好 OpenCV C++ 函數庫的 Windows 版,並安裝在 R 軟體 ROpenCVLite 子資料夾底下,好讓 Rtools 裡面的 mingw C++ 編譯器後續可以取用 OpenCV 的各種函數,方便其他開發套件使用。

Step 2. 請到 r-opencv 網址 下載並解壓縮 r-opencv-master.zip,把裡面的 ropencv 資料夾 copy 到一個臨時資料夾底下,例如 d:\temp\ropencv

Step 3. 刪除、改名、或修改以下 d:\temp\ropencv 中的檔案:

(1) 刪除 configure, configure.ac, makefile 檔

(2) 刪除 src 子資料夾中的 config.h.in 檔

(3) 把 src 子資料夾中的 Makevars.in 改名為 Makevars

(4) 修改 DESCRIPTION 檔案:

在  NeedsCompilation: yes 之後,加入以下幾行:

Imports:
Rcpp (>= 0.11.0),
RcppArmadillo (>= 0.4.000.2),
ROpenCVLite (>= 0.1.31),
methods
Depends:
Rcpp (>= 0.11.0),
RcppArmadillo (>= 0.4.000.2),
ROpenCVLite (>= 0.1.31)
LinkingTo: Rcpp, RcppArmadillo

(5) 修改 NAMESPACE 檔:
在 ## import 下面,加入以下 2 行:
import(Rcpp)
import(methods)

(6) 在 src 子資料夾底下新增 Makevars.win 檔(共 3 行):
這個檔案是從 Rvision 套件借用過來的

?View Code LANGUAGE
PKG_LIBS = $(shell "${R_HOME}/bin${R_ARCH_BIN}/Rscript.exe" -e "ROpenCVLite::opencvConfig('libs', arch = Sys.getenv('R_ARCH'))")
PKG_CPPFLAGS = $(shell "${R_HOME}/bin${R_ARCH_BIN}/Rscript.exe" -e "ROpenCVLite::opencvConfig('cflags')")
PKG_CXXFLAGS = $(shell "${R_HOME}/bin${R_ARCH_BIN}/Rscript.exe" -e "Rcpp:::CxxFlags()")

Step 4. 以系統管理員身份打開一個 DOS 視窗(命令提示字元),執行以下指令

(1) 建立 ropencv 原始碼包裝檔(假設 ropencv 資料夾是在 d:\temp 底下):

請把 R.exe 路徑修改成您 Windows 電腦中的 R 軟體安裝路徑

?View Code LANGUAGE
d:
cd temp
d:\R\R-3.4.0\bin\x64\R.exe CMD build ropencv

此時會得到一個 ropencv_0.1.1.tar.gz 檔

(2) 安裝 ropencv 套件到 R :

?View Code LANGUAGE
d:\R\R-3.4.0\bin\x64\R.exe CMD INSTALL ropencv_0.1.1.tar.gz

Step 5. 進入 R 軟體測試:

library(ropencv)
# 隨便拿一個 jpg 圖檔來測試
showImage(“d:/data2/bird2.jpg”)