我在Mac上,使用 brew 安装了opencv3。我正在使用opencv3/3.0.0。今天,我对其进行了更新,并获得了版本3.1.0_1。

但是,此更新破坏了一切,当我尝试使用VideoCapture读取帧并使用waitKey函数时,由于以下原因而中断:



因此,现在我尝试切换回以下版本,但不确定如何。我使用以下内容:



但是,这不会给我像opencv3/3.0.0这样的版本

在地窖里,我只有



所以我不能用



有人可以建议我一种切换回以前版本的方法吗?

最佳答案

这是3.0.0的配方

https://github.com/Homebrew/homebrew-science/blob/f4369af77876e0597e1f23bf2dd0f1ee17efd680/opencv3.rb

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/f4369af77876e0597e1f23bf2dd0f1‌​ee17efd680/opencv3.rb

转到3.1.fixed
mateuszmikusz和LukasKalinski关于that thread的最新建议
brew remove opencv3

(有效地清理了所有内容,Xcode立即注意到了它)
brew cleanup
brew install --HEAD opencv3

10-04 15:40