Mac m1上用vscode安装opencv

安装python

mac有自带的,主要是用python3

安装opencv

        一种办法是通过homebrew来安装,安装命令 brew install opencv@3(如果没有“@3”,就会安装opencv4,opencv4没有调试成功,最后会出现symbol not found的动态库bug

ImportError: dlopen(/opt/homebrew/Cellar/opencv/4.5.5/lib/python3.9/site-packages/cv2/python-3.9/cv2.cpython-39-darwin.so, 0x0002):

Symbol not found: __ZN2cv3dnn14dnn4_v202112203Net10getLayerIdERKNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEE

  Referenced from: /opt/homebrew/Cellar/opencv/4.5.5/lib/python3.9/site-packages/cv2/python-3.9/cv2.cpython-39-darwin.so

  Expected in: /usr/local/lib/libopencv_dnn.4.5.5.dylib

)

        一种办法上通过cmake来对源码进行编译。cmake编译有两种,一种是brew安装cmake,用cmake命令进行编译,(这种办法安装后,opencv的库在/usr/local/lib中,头文件在/usr/local/include中,不便于寻找)。一种是cmake程序编译源码。(这种办法和brew都是安装到了一个文件夹中,brew是安装在homebrew的安装文件夹中,cmake程序是自定义)

安装opencv后,在终端输入命令

        python3

        import cv2

没有提示则表示opencv安装正确

vscode调试

调试中最棘手的是#include 出现波浪线,提示opencv.hpp unfound的错误

        解决办法:在/usr/local/include 建立opencv2的软链接

ps:网上说的在vscode的c_cpp_properties中的includepath不管用,(具体原因大概是vscode的includepath并不影响debug,只是匹配有用--有待验证)

错误2:#include出现#include错误

        解决办法:在c_cpp_properties中正确设置compile path。[一般是/usr/bin/clang++]

错误3:Undefined symbols for architecture arm64:

        解决办法:tasks.json的args最后添加"`pkg-config --cflags --libs opencv`"[这一步主要是链接动态库,macos不会自动链接动态库]

错误4:有可能回遇到c++版本要求c++11的情况(一般不会有这个问题)

        解决办法:task.json的args添加"--std=c++11",

完成之后的配置(一般只需要在tasks.json更改)

tasks.json

Mac m1上用vscode安装opencv_第1张图片

 c_cpp_properties.jsonMac m1上用vscode安装opencv_第2张图片

launch.json

Mac m1上用vscode安装opencv_第3张图片

 

本篇主要是记录,主要是讲一下大致思路和最棘手的一些问题,不详细的地方请见谅

homebrew在m1的具体安装流程自行百度。

你可能感兴趣的:(opencv,macos,计算机视觉)