我在Mac上并使用 brew 来安装opencv3。我有opencv3 / 3.0.0。今天,我更新了它并获得版本3.1.0_1。
然而,这次更新打破了一切,当我尝试使用VideoCapture读取帧并使用waitKey函数时,它会因以下原因而中断:
2016-02-26 23:25:16.846跟踪[99869:1026824] ***由于未捕获的异常终止应用程序' NSInvalidArgumentException',原因:' - [CaptureDelegate doFireTimer:]:无法识别的选择器发送到实例0x7fab5a601240'
所以,现在我正在尝试切换回以下版本,但我不确定如何。我使用了以下内容:
brew search opencv
然而,这不会给我像opencv3 / 3.0.0
这样的版本在酒窖里,我只有
可用版本:3.1.0,3.1.0_1
所以,我不能使用
brew switch"版本"
有人可以建议我换回以前的版本吗?
答案 0 :(得分:4)
这是3.0.0的配方
Homebrew似乎在这里存储了它的本地食谱:
/usr/local/Library/Taps/homebrew/homebrew-science/opencv3.rb
所以你可以试试:
- brew uninstall opencv3
- 用该版本替换本地文件
- brew install opencv3
(这是未经测试的,我肯定会先备份)
更好的解决方案是从源代码编译最新的openCV - 已添加一个补丁来解决问题。 The thread relating to this bug对程序有一些很好的指示。从源代码编译openCV是非常方便的,如果你需要特殊的功能,并且因为这种烦人的错误会相当频繁地出现。软件包管理器(以及opencv.org自己的二进制文件)很少与补丁保持同步。
<强>更新强>
向后移动或的更好方法..
回到3.0
来自@bfontaine的说明......
brew install https://github.com/Homebrew/homebrew-science/blob/f4369af77876e0597e1f23bf2dd0f1ee17efd680/opencv3.rb
继续3.1.fixed
来自mateuszmikusz和LukasKalinski的最新建议that thread
brew remove opencv3
(有效地清理了所有内容,Xcode立即注意到了它)
brew cleanup
brew install --HEAD opencv3
请记住,这是安装最新的代码库,这个代码库不稳定,可能会引入其他错误。