Mac 配置 OpenCV C++ 版本

今天紀錄一下如何在 Mac 上安裝 OpenCV for C++ 開發環境

使用 Brew 安装,pkgconfig 检测,2023.5.17

Mac x86 ( Intel ) , Mac M1 ( Apple silicon ) 和 Ubuntu 也適用
此筆記用 OpenCV 4.7.0_4 版本做範例

1. 安装 cmake 与 pkg-config

如果您的 Mac 沒有 cmake, pkg-config 請先使用 brew 安裝 ( brew 官網 )

brew install cmake pkg-config

如果您是 Ubuntu 使用者參考以下指令

sudo apt-get update  
sudo apt-get install -y cmake build-essential git pkg-config

後面步驟不管是 MacOS / Ubuntu 都是相同

2. 由 OpenCV 官方 GitHub clone Source Code

( 官方 github : https://github.com/opencv/ )

選一個你會放置 OpenCV 程式的資料夾位置
然後 clone OpenCV source code

以下用 4.5.4 為例 :

cd 某个文件夹下
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git

另外很多功能是在 opencv_contrib 這 Repository 中, 建議一起安裝 ( 上 2 行 )

3. Checkout 成 4.5.4 版

cd opencv && git checkout 4.5.4  
cd ../  
cd opencv_contrib && git checkout 4.5.4  
cd ../

4. 建立 build folder

mkdir build_opencv_4.5.4

然後記得進入該資料夾 ( 感謝網友修正 )

cd ./build_opencv_4.5.4

5. 使用 cmake

cmake CMAKE_BUILD_TYPE=Release \  
  -DBUILD_EXAMPLES=ON \  
  -DOPENCV_GENERATE_PKGCONFIG=ON \  
  -DCMAKE_INSTALL_PREFIX=/usr/local/ \  
  -DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules \  
  ../opencv

6. Make install

make -j12  
make install

此部分和安裝其他軟體差不多,編譯上會花一點時間

Ubuntu 使用者 :
視情況可能需要 sudo 指令 ,例如以下錯誤

-- Install configuration: "Release"  
CMake Error at cmake_install.cmake:41 (file):  
  file cannot create directory: /usr/local/share/licenses/opencv4.  
  Maybe need administrative privileges.

改用使用 sudo make install 應可解決

7. 測試

可以到 opencv 的官方範例檔案中進行編譯測試例如以下指令 :

cd ../opencv/samples/cpp  
g++ -std=c++14 -ggdb opencv_version.cpp -o /tmp/opencv_version `pkg-config --cflags --libs opencv4`

編譯 C++ 通過就可以執行程式看看:

/tmp/opencv_version

OpenCV 範例程式執行成功

Brew 安装

brew install opencv
pkg-config --cflags --libs opencv

CLion里面去配置 创建一个新项目,修改cmakeLists

cmake_minimum_required(VERSION 3.25)  
project(demo)  
  
set(CMAKE_CXX_STANDARD 17)  
  
find_package(OpenCV REQUIRED)  
  
include_directories(${OpenCV_INCLUDE_DIRS})  
  
  
add_executable(demo main.cpp)  
target_link_libraries(demo ${OpenCV_LIBS})

代码测试

#include <iostream>  
#include <opencv2/opencv.hpp>  
#include <string>  
  
using namespace cv;  
using namespace std;  
  
void ImageHold(string str) {  
	Mat image = imread(str);  
	  
	imshow("test_opencv", image);  
	waitKey(0);  
}  
  
int main() {  
	std::cout << "Hello, World!" << std::endl;  
	string path = "/Users/koshkaaaa/Documents/File/Fav/";  
	string str = "6F23E4AF-A2BC-4E2E-958E-C24C3F1AEF0E_1_105_c.jpeg";  
	ImageHold(path + str);  
	return 0;  
}

以上為簡單 OpenCV C++ 安裝筆記

posted @ 2023-05-17 17:48  RioTian  阅读(962)  评论(0编辑  收藏  举报