建设旅游网站的功能定位,阜阳网站制作公司多少钱,杭州网页设计公司排名,广东省住房建设厅网站6前言 苹果系统下使用opencv感觉还是有些不太方便#xff0c;总是感觉有点受到限制。本博客描述的是在MacOS下建立App程序然后调用opencv显示图片时出现的一些问题并最后解决的一个过程。
一、程序的建立 选择程序的类型#xff1a; 选择界面模式和编程语言#xff1a; 其余…前言 苹果系统下使用opencv感觉还是有些不太方便总是感觉有点受到限制。本博客描述的是在MacOS下建立App程序然后调用opencv显示图片时出现的一些问题并最后解决的一个过程。
一、程序的建立 选择程序的类型 选择界面模式和编程语言 其余类同可参照我的另外二篇博客《苹果MacOS 调用自编译opencv的Dylib显示一个图片的C程序的步骤》、《苹果系统MacOS下采用ObjectC访问opencv加载图片的一个简单实例》。 二、基本的测试程序 在App的面板上放了一个Button按钮点击一下就会产生一个提示信息如图 运行的时候会出现如下的提示但是点“扔要打开”即可
这是MacOS app程序调用了自编译的opencv的缘故 点击按钮会有如下的提示 至此说明程序结构已经完整有效。
三、加入opencv语句进行调试 加入了opencv的语句并配置了opencv的库和头文件等相关配置可参考本文前面所提到的另外两篇博客发现点击button按钮后无法得到我们想要的结果而是提示文件找不到或者无法加载如下图所示 那么我们对比《苹果系统MacOS下采用ObjectC访问opencv加载图片的一个简单实例》所对应的CommandConsole工程中的代码和运行效果 感觉好像图片的路径是没有问题的那么问题出在哪里呢 四、加入路径查找程序进行判断 从上面这个截图可以看出这个文件路径是确实存在的。
五、其他opencv的功能是可以用的
那么是否MacOS app这种模式下opencv不可以用呢加入了一个利用opencv画红框的程序进行调试测试结果如下 这个说明opencv的功能也是可以被调用的。那么既然opencv功能可以被调用文件的路径又是真实存在的那么问题到底出在什么地方呢
六、找出的原因所在
最后从网上寻找的答案分析下来主要是MacOS app存在一个沙箱的问题。这个和网页的沙箱问题有类似的地方。就是沙箱内的程序访问本地文件是有限制的。于是将需要显示的apple.jpg放入到了程序的资源当中采用如下的方式进行访问 如上图所示将显示红色方框的代码屏蔽然后将传统的从本地文件载入图片的方式改为从资源文件中载入图片。运行结果如下 Nice