• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

XCode集成OpenCV4.8遇到的问题以和踩坑

武飞扬头像
s10g
帮助1

XCode集成OpenCV遇到的问题以及踩坑

  1. 下载opencv

    brew install opencv
    

    下载完成的目录在 : /usr/local/Cellar/opencv

    这里下载有可能会很慢, 多尝试几次, 或者可以尝试换一个下载源:

    cd "$(brew --repo)"  
    git remote set-url origin https://mirrors.aliyun.com/homebrew/brew.git
    cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
    git remote set-url origin https://mirrors.aliyun.com/homebrew/homebrew-core.git
    echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.aliyun.com/homebrew/homebrew-bottles' >> ~/.bash_profile
    source ~/.bash_profile
    

    下载完成后, 目录结构是这样的:

    学新通

    参考链接

  2. 打开XCode新建项目

    学新通

  3. 选择CPP

学新通

  1. 选择一个位置就OK了
  2. 新建完成之后,点击运行,出现打印结果就表示OK了

学新通

  1. 配置 Header Search Paths

学新通

这里注意版本,我opencv是4.8.1,请填写自己的版本

  1. 配置 Library Search Paths

学新通

  1. 新建组,将opencv的引用导入进来

学新通

  1. 添加opencv的引用

学新通

  1. 使用快捷键,找到opencv lib目录

学新通

  1. command A全部选中,导入引用

    学新通

如果libopencv下有了这些文件,说明导入成果

学新通

注意: 这里导入的是引用, 实际上在`libopencv文件夹`中并没有任何东西

学新通

这个文件夹也不能删除, 一旦删除,就会删除 将 /usr/local/Cellar/opencv/4.8.0_1/lib删除,这里是一个大坑!!!

至此,opev就集成进来了!

但是当运行的时候会报错: 说什么没有签名之类的

'/usr/local/lib/libopencv_ml.4.8.0.dylib' (code signature in <7695E2FD-2610-3BB5-930E-DD0D80A878BF> '/usr/local/Cellar/opencv/4.8.0_1/lib/libopencv_ml.4.8.0.dylib' not valid for use in process: mapped file has no cdhash, completely unsigned? Code has to be at least ad-hoc signed.), '/usr/lib/libopencv_ml.4.8.0.dylib' (no such file, not in dyld cache)

运行报错:

学新通

此时打开你的钥匙串:

学新通

先找到一个有效的证书:

学新通

如果钥匙串里面没东西,自行百度弄一个

然后给需要签名的dylib文件,通过你的证书签名

codesign -f -s "你的证书" /usr/local/lib/*.dylib

学新通

最后写一段代码再次运行:


#include <iostream>

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>

using namespace std;
using namespace cv;
int main(int argc, const char * argv[]) {
    // insert code here...
    cout << "Hello, World!\n";
//    // insert code here...
    Mat  image;
    image = imread("/Users/shizhenjiang/Desktop/emoji_2.png");
    namedWindow("Image", WINDOW_AUTOSIZE);
    imshow("Image", image);
    cout << "完成了!"<< endl;;
    waitKey(0);
    return 0;
}

学新通

终于可以开开心心的学习opencv了!!

参考链接:

XCode 动态库未签名问题的解决

[Xcode](配置opencv(Mac环境下c )(简单详细)

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgaijai
系列文章
更多 icon
同类精品
更多 icon
继续加载