1. 程式人生 > >iOS開發之opencv學習筆記一:下載和安裝

iOS開發之opencv學習筆記一:下載和安裝

1. opencv是什麼?

opencv是一個基於BSD開源協議的影象處理開源庫,截止本人編輯時間:2017年6月1日,最新版本為3.2.0。

2.哪裡可以得到opencv的原始碼以及不同平臺的動態庫?

opencv的官方地址為http://opencv.org/,可以在這裡找到opencv的原始碼以及其他資源。



當然,如果覺得英文看起來太累,可以訪問opencv中文網


3.如何編譯和安裝opencv?

opencv目前分為兩個版本系列:opencv2.4.x和opencv3.x。

簡單點說,opencv3.x是一個閹割後的版本(當然,官方的說法是把原來的C變得更加C++化了),大多數你能搜到的API都是opencv2.4.x系列的,這些API在opencv3.x往往是不支援的,而且opencv3.x把重要的nonfree模組去掉了。nonfree是什麼?後面會提到。

你會不會在想,我直接下載編譯opencv2.4.x就行了?如果你的MacOS已經升級到了Sierra(10.12.x),那麼我只能告訴你:不行,你編譯不了了。

Mac Sierra把QTKit庫更名成了AVKit庫。說實話,如果不是被編譯opencv2.4.x折磨到,我都沒聽說過這兩個玩意。當然,如果你喜歡折騰自己的系統,非要編譯opencv2.4.x,你大可以找一個老系統的QTKit庫,複製到你的系統庫裡面去,但我不建議這麼做。

那麼選擇編譯opencv3.x的朋友,繼續往下看吧。

這是opencv-3.2.0的原始碼目錄結構


開啟終端,cd到opencv-3.2.0目錄,新建一個release目錄,並cd到release目錄

(注意這裡的顏色),敲入:cmake -G "Unix Makefiles"..(注意這兩個點不要弄丟)

系統找不到cmake?點這裡

接著敲:make,開始編譯,接下來你可以切出去乾點別的,等個半個小時到一個小時後再來看看是否編譯完成。

編譯成功後,敲:sudo make install(密碼別敲錯),這樣opencv3.2.0就裝到了你的/usr/local裡面了。

4.nonfree模組被移除了,以後要用到怎麼辦?

opencv2裡面經常被用到的模組:feature2d,簡單點說,這個模組是用來處理圖片特徵模型的,大多數用到這個模組的都需要用到nonfree模組,但是opencv3把nonfree模組去掉了。這個模組現在被opencv_contrib取代了,可以在

https://github.com/opencv/opencv_contrib下載到contrib原始碼,不過要注意的是,contrib版本跟opencv版本是對應的,使用opencv3.2.0就要用opencv_contrib3.2.0,https://github.com/opencv/opencv_contrib/releases列出了contrib的各個版本。

opencv_contrib3.2.0下載完後目錄是這樣的


把資料夾覆蓋到opencv3.2.0相應的資料夾,然後到opencv3.2.0的release目錄敲:cmake -G "Unix Makefiles"  ..

呃...沒錯,失敗了... protobuf-cpp-3.1.0.tar.gz檔案雜湊比對失敗。

操作完成後重新敲:cmake -G "Unix Makefiles"  ..

make

sudo make install

這樣opencv_contrib也安裝到/usr/local裡面了。

5.如何測試安裝是否成功?

用Xcode新建一個MacOS Command Tools的工程,加入如下配置




這些庫哪裡找到的?


點add other,敲一下"/",在彈出的視窗輸入


go,選擇所有dylib


這樣,基本的配置就完成了。

新建一個HelloCV.cpp檔案

//
//  HelloCV.cpp
//  opencv3.2.0test
//
//  Created by joe chiu on 2017/6/1.
//  Copyright © 2017年 joe chiu. All rights reserved.
//

#include <stdio.h>
#include <iostream>
#include "opencv2/core/core.hpp"
#include "opencv2/highgui/highgui.hpp"

using namespace cv;
using namespace std;

int main( int argc, char** argv )
{
    
    Mat img = imread( "hello.png", CV_LOAD_IMAGE_UNCHANGED );
    imshow("hello.png", img);
    
    waitKey(0);
    
    return 0;
}

執行


報錯了?因為你的執行目錄裡面沒有hello.png。

隨便找個一個png圖片,拷貝到執行目錄,改名hello.png

執行目錄?


猜猜看點哪個開啟執行目錄。

6.如何編譯iOS上用的framework?

cd到opencv3.2.0的platforms/ios目錄,敲入:python build_framework.py build

報錯了?

因為之前把opencv_contrib加入到opencv裡了,目前opencv_contrib沒有支援iOS的版本,所以還是弄一個純淨的opencv3.2.0編譯吧。

相關推薦

iOS開發opencv學習筆記下載安裝

1. opencv是什麼? opencv是一個基於BSD開源協議的影象處理開源庫,截止本人編輯時間:2017年6月1日,最新版本為3.2.0。 2.哪裡可以得到opencv的原始碼以及不同平臺的動態庫? opencv的官方地址為http://opencv.org/,可以在這

iOS開發opencv學習筆記使用feature2d識別圖片

使用過vuforia或者亮風臺的朋友應該知道,這兩個平臺對圖片的跟蹤的準備工作是很簡單的,只需要幾張樣本圖片就可以做了。 但是按照上篇的介紹,如果用CascadeClassifier進行物體跟蹤就需要非常非常多的樣本,那麼,要對圖片進行識別跟蹤就沒有像上面說的兩個平臺那樣

opencv學習筆記影象讀取與儲存

影象讀取函式:cv2.imread(影象路徑,標誌符) 影象路勁可以是絕對路徑和相對路徑; 識別符號有三種: cv2.IMREAD_COLOR (忽視透明度); cv2.IMREAD_GRAYSCALE(轉換成灰度影象讀取); cv2.IMREAD_UNCHANGE

IOS開發OC學習筆記(中)

該筆記源自本人對一個網路視訊的學習 如有侵權,請聯絡本人刪除。 都是比較基礎的OC知識,中高階開發者可以忽略本文 很多重要內容在程式碼註釋中 1. Foundation-結構體 用法參考: NSRange rang

Typescript 學習筆記介紹、安裝、編譯

前言 整理了一下 Typescript 的學習筆記,方便後期遺忘某個知識點的時候,快速回憶。 為了避免凌亂,用 gitbook 結合 marketdown 整理的。 若是有不對的地方,歡迎留言指出。 眾所周知,JavaScript 是弱型別的,而這對開發人員來說,在一定程度上算是一個“痛點”。解

Android知識體系梳理筆記Kotlin學習筆記繼承以及Anko(全)的基本使用

前言 對於kotlin,我是邊寫專案邊學的方式來學習的,這些都是在做專案的時候遇到的問題及擴充套件學習的時候記錄的,雖然有些內容不會涉及,但是我認為這種邊寫程式碼邊學習的方式特別有助於記憶,畢竟紙上得來終覺淺! 類和繼承 Kotlin較Java在繼承和實現

Docker學習筆記() Docker下載安裝

Docker在Centos7下的安裝步驟 參照菜鳥教程 首先檢查一下核心版本是否是3.1及以上 [[email protected] ~]# uname -r 3.10.0-693.21.

基於.NET的CAD二次開發學習筆記CAD開發入門

1、AutoCAD .NET API由不同的DLL檔案組成,它們提供用於訪問圖形檔案或AutoCAD應用程式的包含豐富的類、結構、方法和事件。每一個DLL檔案都定義不同的使用基於功能的庫組織元件的名稱空間。 下面是你將頻繁地要使用的AutoCAD .NET API 的三個主要的DLL檔案:

CUDA學習筆記CUDA+OpenCV的影象轉置,採用Shared Memory進行CUDA程式優化

原創文章,轉載請註明出處...... 一、問題背景         最近要做一個關於CUDA的學習分享報告,想在報告中舉一個利用CUDA進行影象處理的例子,並使用Shared Memory避免Global Memory不合並訪存情況,提高影象處理效能。但是對於CUDA程式如

H5遊戲開發phaser學習筆記

1、Phaser.Game(width, height, renderer, parent, state, transparent, antialias, physicsConfig) width: 遊戲的寬度,也就是用來渲染遊戲的canvas的寬度,單位為px hei

opencv學習筆記opencv下載安裝與VS2017開發環境配置

目錄1.opencv下載與安裝2.計算機環境變數配置3.VS目錄包含l  包含目錄l  工程錄目錄l  附加依賴項l  在Windows資料夾下加入OpenCV動態連結庫正文一、opencv下載與安裝1.下載地址:官網下載地址https://opencv.org/      

OpenCV學習筆記_0開發環境配置

Win10 + Visual studio 2015 + OpenCV3.4.1 下載,安裝Visual studio 2015 下載,安裝OpenCV3.4.1 配置OpenCV

iOS音訊學習筆記常見音訊封裝格式及編碼格式

(1) pcm格式    pcm是經過話筒錄音後直接得到的未經壓縮的資料流    資料大小=取樣頻率*取樣位數*聲道*秒數/8     取樣頻率一般是22k或者44k,位數一般是8位或者16位,聲道一般是單聲道或者雙聲道     pcm屬於編碼格式,就是一串由多個樣本值組成的資料流, 本身沒有任何頭資

Flask-RESTful介面開發學習筆記實現簡單的GET請求

1、首先安裝需要依賴的第三方包:   (1):Flask   (2):Flask-RESTful 如何安裝就不在囉嗦,pip也好,下載到本地再安裝也好,看你隨意。 2、我們先實現GET請求。 Q:什麼是GET請求。 A:簡單來說,GET請求,就是根據傳過來的引數條件,來獲

ROS學習筆記() 入門基本概念

mes rap 打開 創建 創建ca cpp wiki 管理器 速度 目錄 基本概念 實踐操作 基本概念 1. Package 程序包,裏面包含節點Node、ROS程序庫、數據集、配置文件 Package Manefist 程序包的配置文件,即描述程序包的相關信息,包括其名

Spring4學習筆記環境搭建與插件安裝

str nag j2e 容器 獲取 相關 market 至少 ips 一:環境搭建 1:開發環境:JDK安裝、Eclipse安裝 2:數據庫:Mysql、Sequel Pro(數據庫可視化操作工具) 3:web服務器:Tomcat下載,並且把tomcat配置到Eclip

linux學習筆記遠程連接linux服務器

user 亂碼 roo 開機啟動 sta 文件 ftpd 連不上 服務 環境介紹:win7電腦,通過VM虛擬出linux系統,安裝centOS7 通過Xshell連接linux,ftp訪問服務器資源。 遇到的問題,ftp連不上linux 解決:linux上安裝ftp服務 步

python學習筆記()基本概念

單引號 網絡爬蟲 解釋型 g模式 deb 恢復 判斷語句 安裝 bubuko ---恢復內容開始--- 一.python簡介 pyhthon是解釋型語言,python可以用來網絡爬蟲、數據分析、web開發、人工智能、嵌入式、自動化測試、自動化運維等,所有語言中,地方放庫最多

OpenCV學習筆記3圖像模糊作用方法

希望 ont 去模糊 image title name 聽說 但是 意義 一、意義和作用: 圖像的模糊處理就是將圖片處理的更加模糊,如下圖,左側是原圖,右側是經過處理之後的圖片。 從主觀意願上說,我們希望看到清晰的圖像,而不是模糊的圖像。所以很多時候我們聽說還有一種專門進

Docker學習筆記什麽是Docker

服務端 xiaojian lin tex 配置 配置管理 name 定制 logs 什麽是Docker一種容器技術,提供了非常方便的用戶體驗,用戶無需關系底層的操作即可達到對應用進行、封裝、分發、部署和運行的周期管理。容器=cgoup+namespace+文件系統+容器引擎