【发布时间】:2016-12-22 05:05:19
【问题描述】:
环境:MAC 机器,在虚拟机中运行我的代码,客户操作系统:Ubuntu 14.4 LTS。
我在示例下的 tensorflow 工作区中编译 openCV。我的 WORKSPACE 和 opencv.BUILD 文件看起来与提到的here 类似
我的 opencv + tensorflow 项目的 BUILD 文件如下所示:
package(default_visibility = ["//tensorflow:internal"])
licenses(["notice"]) # Apache 2.0
exports_files(["LICENSE"])
cc_binary(
name = "label_image",
srcs = [
"main.cc",
],
linkopts = ["-lm"],
copts = ["-DWITH_FFMPEG=OFF"],
deps = [
"//tensorflow/cc:cc_ops",
"//tensorflow/core:framework_internal",
"//tensorflow/core:tensorflow",
"@opencv//:opencv"
],
)
filegroup(
name = "all_files",
srcs = glob(
["**/*"],
exclude = [
"**/METADATA",
"**/OWNERS",
"bin/**",
"gen/**",
],
),
visibility = ["//tensorflow:__subpackages__"],
)
如果我禁用 tensorflow 依赖项(并注释 tensorflow 相关代码)。我可以看到网络摄像头已正确捕获。像这样:
deps = [
#"//tensorflow/cc:cc_ops",
#"//tensorflow/core:framework_internal",
#"//tensorflow/core:tensorflow",
"@opencv//:opencv"
],
但如果我仍然保留代码注释/未注释并且还保留 tensorflow 依赖项,我的网络摄像头会挂在 VideoCapture::read()
默认情况下,opencv 使用 FFMPEG 编解码器,我尝试启用和禁用 FFMPEG。有人可以帮助我为什么在项目中编译 tensorflow 库时让我的 openCV read() 挂起?
【问题讨论】:
-
通过在 opencv.BUILD 文件中更改 MAC (*.dylib) 的适当动态库,我可以让 tensorflow 和 OpenCV 在 MacOS 上运行。
标签: c++ opencv tensorflow