日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

android安装python opencv_Python、C++、Android OpenCV 开发环境的配置

發布時間:2025/3/15 python 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android安装python opencv_Python、C++、Android OpenCV 开发环境的配置 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在 Mac 上折騰了一下 OpenCV 的配置,分別配置了 Python 、C++ 和 Android 上的開發環境,中間還遇到點坑,簡要記錄一下。

OpenCV 的安裝

OpenCV 的安裝有兩種方式,可以通過下載源碼自行編譯,也可以通過homebrew來安裝。

源碼編譯

通過源碼編譯可以參考下面這兩篇文章:

大致操作都是要從 Github 上下載好源碼,然后配置 cmake ,再通過 make 編譯出 cv2.so 庫。

Homebrew 安裝

通過 homebrew 來安裝 OpenCV 就相對簡單多了。

直接 brew install opencv 命令就好了。

不過,要注意的是:下載好的 OpenCV 還在 /usr/local/Cellar/opencv/3.3.1_1/ 目錄下。

這時候,在 Terminal 上,直接運行 Python3 命令,然后在交互式環境中通過 import cv2的命令來導入 OpenCV 的庫依舊是找不到的。

解決辦法就是進入到 /usr/local/lib/python3.6/site-packages 目錄下,通過 ln 命令將 /usr/local/Cellar/opencv/3.3.1_1/lib/python3.6/site-packages 目錄下的 cv2.so 鏈接到當前目錄。

///usr/local/lib/python3.6/site-packages 目錄下執行如下指令

sudo ln -s /usr/local/Cellar/opencv/3.3.1_1/lib/python3.6/site-packages/cv2.so cv2.so

這樣就可以完成導入了。

Python 配置 OpenCV 環境

Python 開發用的 IDE 是 PyCharm。

事實上在 PyCharm 的 Project Interpreter 中可以添加 Python 庫的,直接選擇 opencv-python 庫就好了,它最終也是通過 pip命令來下載對應的庫的。

但卻有個問題:

通過這種方式安裝的 OpenCV 在運行播放視頻的代碼時會出錯:

import cv2

videoUrl = "/Users/glumes/Desktop/kpt1.mp4"

cap = cv2.VideoCapture('/Users/glumes/Desktop/kpt1.mp4')

while(cap.isOpened()):

ret, frame = cap.read()

gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

cv2.imshow('frame', gray)

if cv2.waitKey(0) & 0xFF == ord('q'):

break

cap.release()

cv2.destroyAllWindows()

報錯的內容是:The current event queue and the main event queue are not the same。

給出的原因是因為沒有安裝好 ffmpeg。

所以還是建議直接通過 brew 的方式安裝,然后再創建鏈接好了。

安裝好之后,就可以開始運行我們的 OpenCV 代碼了。

簡單的展示一張圖片代碼示例:

import cv2

print(cv2.__version__)

imgUrl = '/Users/glumes/Desktop/blog_camera_block.png'

img = cv2.imread(imgUrl,0)

cv2.imshow('image',img)

cv2.waitKey(0)

print("waiting")

cv2.destroyAllWindows()

C++ 配置 OpenCV 環境

C++ 開發用的 Mac 的 Xcode。

首先要在 Xcode 中創建一個命令行工程。

mac-command-line-project

然后在工程名處右鍵,選擇 Add File to Project,通過快捷鍵 Command+Shift+G進入到 /usr/local/lib目錄下,將所有和 OpenCV 相關的 dylib 庫添加進來。

完成了之后,再到工程的 Build Settings中去添加對應的頭文件和庫文件。

找到 Search Paths,然后在 Header Search Paths 中添加

/usr/local/include

/usr/local/include/opencv

在 Library Search Paths 中添加

/usr/local/lib

效果圖如下:

xcode_build_setting

完成之后,就可以開始編寫 C++ 代碼來開發 OpenCV 了。

同樣還是預覽一張圖片作為示例:

//

// main.cpp

// OpenCVEnv

//

// Created by glumes on 2017/11/7.

// Copyright ? 2017年 glumes. All rights reserved.

//

#include

#include

#include

#include

#include

using namespace std;

#define BYTE unsigned char

int main(int argc, const char * argv[])

{

//這個地方的目錄需要改成自己的

IplImage* img = cvLoadImage("/Users/glumes/Desktop/blog_opengl_result_point.png", 1);

cvNamedWindow("picture", 1);

cvShowImage("picture", img);

cvWaitKey(0);

cvReleaseImage(&img);

cvDestroyWindow("picture");

return 0;

}

點擊運行,當編譯成功時,就可以看到多了一個命令行窗口,里面就是我們預覽的圖片內容。

完成了開發環境的配置之后,就可以愉快地進行 OpenCV 開發咯。

Android 配置 OpenCV 開發環境

在 Android 上配置 OpenCV 的環境相對就簡單多了。

首先要做的就是在官網上 https://opencv.org/releases.html 下載好對應的 SDK ,有 2.x 版本的也有 3.x 版本的。

解壓之后,主要有三個目錄:apk、sdk、samples,要關心的就是sdk目錄了。

在 AS 上新建一個 Android 工程,創建時最好先勾選了 C++ Support 選項,后面會在 CMakeLists.txt 文件中進行更改。

然后選擇 Import Module,在彈出的框中,選擇下載好的 SDK 的 java 文件夾,如下圖:

import_opencv_module

這會將 OpenCV 提供的對 NDK 調用封裝的庫以依賴的形式導入到我們的工程。

別忘了在工程的 build.gradle 添加如下代碼來導入

implementation project(':OpenCVLibrary330')

之后,就是導入 so 動態庫。

將 OpenCV-android-sdk\sdk\native\libs 目錄下的內容拷貝到應用的 jibLibs 目錄下。

import_opencv_sp

接下來修改 CMakeLists.txt 文件,將頭文件和庫進行導入。

# 包含頭文件

include_directories(/Users/glumes/Downloads/OpenCV-android-sdk/sdk/native/jni/include)

# 添加 lib_opencv 動態庫

add_library( lib_opencv SHARED IMPORTED )

# 設置庫的導入路徑

set_target_properties(lib_opencv PROPERTIES IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/src/main/jniLibs/${ANDROID_ABI}/libopencv_java3.so)

這里僅僅是導入了 libs 目錄下的動態 so 庫,也可以將靜態的 .a 庫導入。

完成了這一步后,就可以用 C++ 進行 OpenCV 的開發了。

在默認的 native-lib 動態庫中,添加 opencv 的動態庫,這樣就可以鏈接到了。

target_link_libraries( # Specifies the target library.

native-lib

# 鏈接 opencv 的動態庫

lib_opencv

# Links the target library to the log library

# included in the NDK.

${log-lib} )

參考

一起交流學習,答疑解惑,有問題,我們星球見~~~

圖形/圖像/音視頻交流

覺得文章還不錯,可以關注一下微信公眾號【紙上淺談】

Wechat

總結

以上是生活随笔為你收集整理的android安装python opencv_Python、C++、Android OpenCV 开发环境的配置的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。