在 Mac OSX 上使用 Xcode4 部署和分发 OpenCV 应用程序

2023-11-21

我正在开发 OpenCV 应用程序,我的问题是如何在非开发机器(未安装 OpenCV 的机器)上部署和分发该应用程序?

我在 Mac OS X Lion 上使用 Xcode4 和 OpenCV 2.2。

thanks


这只是部分答案,因为我还没有弄清楚如何使用 OpenCV 库来做到这一点。 (弄清楚了。请参阅下面的更新。)但我已经用其他库做到了(SM2D图形视图).

需要发生三件事:

  1. 您需要将程序使用的 OpenCV 库复制到应用程序包中。为此(无论如何,在 Xcode 3 中),请将“复制文件”构建阶段添加到您的目标。将库文件从 Xcode 的文件列表拖到构建阶段。双击“复制文件”项并将目标设置为“框架”。

    请注意,您需要确保 Xcode 项目中包含的库是库文件,而不是库文件的符号链接。否则,只有符号链接将被复制到您的应用程序包中。

  2. OpenCV框架文件的安装路径需要设置为@executable_path/../Framework。如果框架是在 Xcode 中构建的,您可以在项目设置中执行此操作。由于 OpenCV 不是在 Xcode 中构建的,因此您需要在事后使用install_name_tool命令行程序:install_name_tool -id @executable_path/../Frameworks libopencv_imgproc.2.3.1.dylib。您应该能够在目标的运行脚本构建阶段进行设置。

  3. 可执行文件需要在捆绑包中找到该库Frameworks目录。这就是我目前陷入困境的地方。

Update

我找到了正确的 install_name_tool 命令来让程序查看库(以及让库查看其他库)。有关信息用于部署 OS X 程序的 Qt 页面是关键。

I ran otool -L在我的程序的 Contents/MacOS 目录中的可执行文件上,看到了这个[删除了不相关的行]:

lib/libopencv_core.2.3.dylib (compatibility version 2.3.0, current version 2.3.1)
lib/libopencv_imgproc.2.3.dylib (compatibility version 2.3.0, current version 2.3.1)
lib/libopencv_highgui.2.3.dylib (compatibility version 2.3.0, current version 2.3.1)

因此,我使用这些命令(在 Contents/MacOS 目录中)让程序在正确的位置查找库:

install_name_tool -change lib/libopencv_core.2.3.dylib @executable_path/../Frameworks/libopencv_core.2.3.1.dylib CocoaCVTest 
install_name_tool -change lib/libopencv_imgproc.2.3.dylib @executable_path/../Frameworks/libopencv_imgproc.2.3.1.dylib CocoaCVTest 
install_name_tool -change lib/libopencv_highgui.2.3.dylib @executable_path/../Frameworks/libopencv_highgui.2.3.1.dylib CocoaCVTest 

然后我切换到 Contents/Frameworks 目录并使用这些命令来告诉库它们的安装位置:

install_name_tool -id @executable_path/../Frameworks/libopencv_core.2.3.1.dylib libopencv_core.2.3.1.dylib
install_name_tool -id @executable_path/../Frameworks/libopencv_imgproc.2.3.1.dylib libopencv_imgproc.2.3.1.dylib
install_name_tool -id @executable_path/../Frameworks/libopencv_highgui.2.3.1.dylib libopencv_highgui.2.3.1.dylib

现在需要告诉 imgproc 库在哪里可以找到 core 库,并且 highgui 需要知道在哪里可以找到 core 和 imgproc:

install_name_tool -change lib/libopencv_core.2.3.dylib @executable_path/../Frameworks/libopencv_core.2.3.1.dylib libopencv_imgproc.2.3.1.dylib
install_name_tool -change lib/libopencv_core.2.3.dylib @executable_path/../Frameworks/libopencv_core.2.3.1.dylib libopencv_highgui.2.3.1.dylib 
install_name_tool -change lib/libopencv_imgproc.2.3.dylib @executable_path/../Frameworks/libopencv_imgproc.2.3.1.dylib libopencv_highgui.2.3.1.dylib 

我仍然遇到一个问题,highgui 在 /opt/local/bin 中寻找大量库,但我相当有信心问题的 OpenCV 部分已经解决。现在我只需要将所有这些命令放入 Xcode 的构建阶段即可。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Mac OSX 上使用 Xcode4 部署和分发 OpenCV 应用程序 的相关文章

  • 使用 OpenCV 绘制固定的网格线集

    是否可以根据 OpenCV 示例文件中颜色检测示例的输出 在所有交叉点处绘制具有定义点的用户定义网格线 基本上 网络摄像头需要从您上方检测人的头部和肩膀 然后 当检测到一个人时 我需要网格线在那里 以便我能够知道在 x 轴和 y 轴 前额和
  • 即使安装了 wget,它也未被识别为命令

    我知道我在这里做了一些非常愚蠢的事情 但我已经尝试了我能想到的事情 这是我的会议的相关部分 wget http pjmedia com instapundit bash wget command not found cd pip insta
  • OpenCV 中更新窗口的 waitKey() 的替代方法

    到目前为止我见过的所有示例和书籍都建议使用 waitKey 1 来强制重新绘制 OpenCV 窗口 这看起来很奇怪而且太老套了 不必要的时候为什么还要等待 1 毫秒呢 还有其他选择吗 我尝试了 cv updateWindow 但它似乎需要
  • 在 macOS 上更改 libpcap 版本(Apple 删除了一项功能)

    我只想使用 tcpdump 和 Ubuntu 上提供的相同 Qout 功能 在 macOS 上 tcpdump 和 libpcap 已被剥离使用 Qout 进行过滤的功能 tcpdump Qout nnSX c 10 w packet pc
  • 如何显示从 xib 加载的工作表? (MacOSx)

    我有一个 xib 文件 其中只有一个 NSPanel 我试图将此面板显示为模式表 带有beginSheet modalForWindow modalDelegate didEndSelector contextInfo 该 xib 文件的所
  • Mac App Store 应用内购买的在线收据验证

    对于 iOS 的应用内购买 我们可以使用在线 API 进行验证 http developer apple com library ios documentation NetworkingInternet Conceptual StoreKi
  • 使用 openCV 锐化视频图像

    我想使用 OpenCV 锐化我的图像 我在网上查看了一个示例 该示例正在对灰度图像执行锐化 我尝试了它 它工作得很好 然而 我现在尝试做同样的事情 但使用 RGB 颜色 所以我分别在三个通道上执行相同的功能 但它没有给我任何结果 图像与原始
  • 如何在 Mac OS X 中删除文件的“扩展属性”?

    我有一个苹果脚本 http en wikipedia org wiki AppleScript运行压力测试的脚本 测试的一部分是打开 保存和关闭某些文件 不知何故 这些文件具有一些 扩展属性 禁止保存文件 这会导致压力测试失败 如何删除扩展
  • Xcode 产品在发布模式下呈红色

    我想分发我的应用程序 我放置了代码签名和所有内容 我的最后一步是将构建设置为发布 我去编辑方案并将构建配置发布 然后我的产品由于某种原因变成了红色 我无法在 Finder 中打开它 因此无法发送它 如果我将其改回构建模式 它就不是红色的 我
  • 仅在特定值上停止 NSScrollView - 就像 UIScrollView 分页

    我正在使用 SDK 10 7 作为部署目标开发 Mac OS X 应用程序 NSScrollView 包含图像缩略图的水平列表 ScrollView 中心的缩略图表示所选图像 该图像以全尺寸显示在 ScrollView 下方 这与 Find
  • Docker 进程被神秘的“Killed”消息杀死

    在 docker 容器中运行 python 脚本 一切似乎都运行顺利 看到一些 STDOUT 消息 大约 5 分钟后我得到了Killed消息 没有进一步的解释 并且该过程停止 查询数据库可能是磁盘空间问题 也可能是 OOM 问题 我不确定
  • NSTextview:如何获取插入点的字形矩形?自定义文本视图?

    我似乎找不到任何有关如何获取插入点的矩形的文档 我试图在文本插入点 插入点正下方显示一个视图 如自动完成 我正在考虑制作一个自定义文本视图 但如果我可以避免它 那对我的情况来说将是理想的 谢谢 NSRect rectForActiveRan
  • 使用 K 均值聚类 OpenCV 进行交通标志分割

    I used K Means Clustering to perform segmentation on this traffic sign as shown below 这些是我的代码 读取图像并模糊 img cv imread 000
  • Poppler 已安装:为什么在 python3 上使用 pdf2image 时出现错误?

    我正在使用Python3 7 4在 macOS 10 14 6 上 我正在尝试使用pdf2image将 pdf 文件转换为图像 所以我已经安装了poppler with Homebrew 当我尝试转换 PDF 时收到错误消息 Traceba
  • 获取 Mac OS X 上的当前堆栈跟踪

    我正在尝试弄清楚如何在 Mac OS X 上的 C 应用程序中存储然后打印当前堆栈 主要问题似乎是在主可执行文件内给定地址时让 dladdr 返回正确的符号 我怀疑这个问题实际上是一个编译选项 但我不确定 我已经尝试过 Darwin Leo
  • 附加信息:OpenCV:使用 c# 的不同大小的对象

    目前 我的 EmguCV c 代码面临问题 我试图从数据库中识别我的图像 但它不起作用 一旦检测到我的脸 它就会崩溃 然后会出现此错误 附加信息 OpenCV 不同大小的对象 我尝试寻找这个错误 但我一无所知 这是我的代码 Action f
  • 对于 Web 应用程序来说,您理想的 git 分支架构是什么?

    我们是一个由开发人员组成的小团队 正在构建 Web 应用程序 我们目前拥有一个实时 测试和多个开发环境 您会建议什么分支架构 以便理想情况下每个开发人员都可以处理他的功能 这些功能可以在不影响其他开发人员 功能的情况下进行测试和部署 目前
  • Mac OSX 上使用 Java 7 的透明 JFrame/JWindow

    我们有一个屏幕共享小程序 它打开 Swing JFrame 并使用 Robot 类捕获空框架后面的屏幕 用户可以单击框架并与小程序后面的任何内容进行交互 这在 Windows 上运行良好 并且用于 Apple 的 Java 版本 但对于 M
  • 用于 C++ 中图像分析的 OpenCV 二进制图像掩模

    我正在尝试分析一些图像 这些图像的外部周围有很多噪声 但内部有一个清晰的圆形中心 中心是我感兴趣的部分 但外部噪声正在影响我对图像的二进制阈值处理 为了忽略噪音 我尝试设置一个已知中心位置和半径的圆形蒙版 从而使该圆之外的所有像素都更改为黑
  • 跟踪白色背景中的白球(Python/OpenCV)

    我在 Python 3 中使用 OpenCV 来检测白场上的白 黑球 并给出它的精确 x y 半径 和颜色 我使用函数 cv2 Canny 和 cv2 findContours 来找到它 但问题是 cv2 Canny 并不总是检测到圆的完整

随机推荐

  • WPF 在同一个 ListCollectionView 上使用多个过滤器

    我使用 MVVM 设计模式 将 ListView 绑定到 ViewModel 上的 ListCollectionView 我还有几个用于过滤 ListView 的组合框 当用户从组合框中选择一个项目时 ListView 会过滤所选项目 每当
  • 如何从 pandas 数据帧在 MySQL 数据库中创建新表

    我最近从使用 SQLite 来满足大部分数据存储和管理需求 过渡到使用 MySQL 我想我终于安装了正确的库来使用 Python 3 6 但现在我在从 MySQL 数据库中的数据帧创建新表时遇到了问题 这是我导入的库 import pand
  • Primefaces 文件下载的非英文文件名已损坏

    我正在使用 Primefaces 3 2 我在使用 primefaces fileDownload 时遇到问题 我可以上传文件并将其非英文名称保留在服务器上 在我的情况下 这是俄语 但是 当我使用 p fileDownload 下载上传的文
  • 在 Azure WorkerRole 上运行 PowerShell 命令时出错

    我正在尝试在 Windows Azure 角色上运行启动任务 cmd 脚本 这是命令文件脚本的两行 powershell command set executionpolicy Unrestricted powershell command
  • 使用sklearn在PCA中恢复explained_variance_ratio_的特征名称

    我正在尝试从使用 scikit learn 完成的 PCA 中恢复 which特征被选择为relevant IRIS 数据集的经典示例 import pandas as pd import pylab as pl from sklearn
  • Pyserial 缓冲区填充速度快于我的读取速度

    我正在通过串口以 921600 的波特率从微控制器读取数据 我正在读取大量 ASCII csv 数据 由于数据输入速度如此之快 缓冲区已被填满 所有其余数据都会在之前丢失我能读懂 我知道我可以手动编辑serialwin32的pyserial
  • android ExpandableListView如何设置组项目之间的空间

    我有可扩展列表视图 我想在组项之间添加填充 或边距 我使用margin botton在组项目上 它有效 但现在它也适用于组项目及其子项目 我想在组项目之间保留空格 而不是在组项目及其子项目之间保留空格 我的工作方式如下 主要XML
  • 如何中止 ASP.NET MVC 中的操作

    我想停止由jQuery ajax服务器端的方法 我可以使用停止 Ajax 请求 ajax abort 方法在客户端 但不在服务器端 Updated 我使用异步操作而不是同步操作 但我没有得到我想要的 如您所知 服务器无法同时处理多个请求 这
  • 嵌入图像不显示

    这是我在便携式项目中的页面
  • 如何获取 NLTK 中同义词集的词网语义频率?

    根据文档 我可以在 nltk 中加载带有语义标记的语料库 如下所示 gt gt gt from nltk corpus import wordnet ic gt gt gt brown ic wordnet ic ic ic brown d
  • 错误 1878 (HY000):临时文件写入失败

    我正在执行一个查询 修改表message添加列syncidint 10 非空默认 0 MySQL 返回错误 ERROR 1878 HY000 Temporary file write failure 消息表信息 引擎类型 InnoDB 行数
  • Excel 2007 - 根据文本生成唯一ID?

    我有一张工作表 其中 B 列中有一个名称列表 A 中有一个 ID 列 我想知道是否有某种公式可以获取该行 B 列中的值并根据文本生成某种 ID 每个名字也是独一无二的 不会以任何方式重复 如果我真的不必使用 VBA 那就最好了 但如果我必须
  • 集合、多重集、映射和多重映射如何在内部工作

    多组如何运作 如果集合不能将值映射到键 那么它是否只保存键 另外 关联容器如何工作 我的意思是向量和双端队列在内存中是按顺序定位的 这意味着如果它们很大 则删除 删除 除了开始 双端队列 和结束 向量 双端队列 会很慢 列表是一组不按顺序位
  • 我为什么要关心 Java 没有具体化泛型?

    这是我最近在一次采访中提出的一个问题 因为候选人希望看到 Java 语言中添加一些内容 这通常被认为是 Java 所没有的痛苦具体化泛型但是 当我催促时 这位候选人实际上无法告诉我 如果他们在那里 他可以实现哪些目标 显然 因为 Java
  • 从 C# 读取 protobuf3 自定义选项

    TL DR 根据文档 如果我正在使用 C 我可以使用读取自定义选项的值string value MyMessage descriptor gt options GetExtension my option Java 和 Python 也有类
  • 时间戳最大值

    我在 Windows 10 x64 上使用 Python 3 6 0 我刚刚发现在time ctime seconds seconds参数有一个隐含的最大值 即 32536799999 几乎等于2 34 92135 这是最大值吗 错误消息只
  • 使用 sed (或类似的东西)修改变量的内容

    我编写了一个 BASH 文件 其中包含以下形式的多个嵌入式循环 for P in 0 10 0 20 0 90 1 00 do for Q in 0 10 0 20 0 90 1 00 do 我使用这些变量作为命令行应用程序的参数 并直接在
  • 订阅 Facebook 页面动态实时更新

    我正在用 Scala 和 Play 编写一个 Facebook 应用程序 我想要实时更新用户源和该用户管理的页面源 所以我订阅了这些 这是从 GET my app id subscriptions 返回的内容 data object use
  • 如何在 SQL Server 中生成正态分布的数字

    我正在尝试播种一些数据 是否有办法在 SQL Server 中生成遵循正态分布曲线的数字 例如 我将指定平均值 标准差和计数 然后我会得到一个数字列表 随机正态分布 UPDATE TABLE SET COLUMN CAST SQRT 2 L
  • 在 Mac OSX 上使用 Xcode4 部署和分发 OpenCV 应用程序

    我正在开发 OpenCV 应用程序 我的问题是如何在非开发机器 未安装 OpenCV 的机器 上部署和分发该应用程序 我在 Mac OS X Lion 上使用 Xcode4 和 OpenCV 2 2 thanks 这只是部分答案 因为我还没