怎样在PC上打开OpenCV ?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样在PC上打开OpenCV ?相关的知识,希望对你有一定的参考价值。

一、PC上安装Opencv

    1、安装环境是:Ubuntu13.10(内核是3.3的),Opencv-2.4.3

    由于在计算机上安装,所以很简单,只需要将集成的库先利用apt-get来安装,到最后安装Opencv的时候能够找到ffmpeg或其它库的依赖库就好了。列举需要安装的库:

    最后一个命令安装了很多库,但是有可能输入进去会报错,这也是依赖库的问题。解决方法就是一个一个的安装,这样每个库安装都会检测依赖关系,要么修复要么下载依赖库就不会出现依赖的问题了。

    2、下面就是Opencv的压缩包进行解压

    解压到了/opt/zedboard/opencv_pc/下,当然也可以根据需要自定义,因为这是一个编译的目录,最终都是要安装到/usr/local下的

    

3、安装

    解压之后进入到OpenCV-2.4.3的文件夹,创建一个build文件夹,在build文件夹下执行:

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ../


    因为不是交叉编译,所以不用设置编译器,后面的PREFIX是在设置安装目录,一定不能把最后的“ ../”给省略了!然后利用安装的cmake-gui命令,在图形界面下对Opencv进行配置。


cmake-gui


此时会弹出一个图形界面,选择路径,一个是Opecv-2.4.3,一个是下面的Build,上面需要修改的只是最后面的WITH_XXX,根据安装的库,选择如下图所示:


选择完后,点击Configure,之后会报出一些消息,尽管会提示有一些文件找不到,但是不用管它,再点击Generate,然后关闭对话框。最后输入:

make 

make install

 

    注意,在make的时候需要很久,但是一定要关注是否100%的编译通过了,有些时候在等待的时候就去做别的事情的,回来的时候没有看有没有报错,直接就make install。实际上,如果中间编译出错,那么只安装了部分的库,而且还不能用。正确编译的最后几行代码应该如下图所示:

参考技术A opencv类似于一个小插件,有他自己的功能函数。这个插件就是应用在VS2010或者VC++6.0上的一个工具包,打开VS或者VC用提供的函数就相当于用opencv了。本回答被提问者采纳

我如何在一台 Linux PC 中使用 Opencv 构建到另一台?

【中文标题】我如何在一台 Linux PC 中使用 Opencv 构建到另一台?【英文标题】:How can i use Opencv build in one Linux PC to the other? 【发布时间】:2017-08-22 06:17:06 【问题描述】:

我正在尝试使用 opencv 创建一个 C++ 应用程序,并与其他未在其 PC 上安装 Opencv 的用户共享该应用程序。我该怎么做?

我试过了:

    我复制了一些 /home/myfolder 路径中的所有头文件、源文件和库。
      我创建了应用程序并链接了 /home/myfolder 中存储的所有文件。 将环境变量 LD_LIBRARY_PATH 设置为指向 .bashrc 文件中的 /home/myfolder,以便应用程序可以在运行时找到库。

我能够在我的 PC 上编译,但是当我与其他 PC 共享我的文件夹并链接所有库时,我收到 Opencv 未定义的引用错误。

谢谢

【问题讨论】:

假设它是相同的架构并且您只想共享应用程序本身,为什么不将可执行文件传递给另一台 PC 并运行呢? (当然你需要静态链接 OpenCV 库)。 感谢您的回复。两台PC都是64位的。如果我只共享可执行文件,则它必须与其他 PC 中没有的所有库(如 opencv)链接。所以我在.bashrc中设置环境变量路径指向共享文件夹,它有Opencv lib文件,但我仍然面临未定义的引用错误。 你试过用静态链接编译它吗? 如果我的理解是正确的,你的意思是说在我的 PC 上构建了我的应用程序后,我应该将整个应用程序连同所有必要的头文件、源文件和 lib 文件复制到另一台 PC 并在编译时我应该做静态链接。我的理解正确吗?如何进行静态链接?请提出建议。 静态链接意味着您将所需的库集成到可执行文件本身中。所以它是真正的“独立”。这有增加可执行文件大小的缺点。 【参考方案1】:

答案是静态链接。如果您不关心可执行文件的大小并且目标机器没有所需的库,只需在可执行文件中提供它们即可。 请查看this问题以供参考。

【讨论】:

【参考方案2】:

此答案具有安全隐患 - 使用前请告知自己,并且仅在专用网络上使用。


您可以让其他用户 ssh 进入您的 PC 并使用 -X-Y 选项将 X11 连接转发到他自己的计算机。

所以,其他用户会这样做:

ssh -Y someUser@yourPC yourApp

您需要考虑是否要信任该人以您的身份登录,或者您是否希望在您的 PC 上创建一个只能运行您的特定应用而不能运行其他应用的其他用户。


另一种选择可能是让其他用户在他的机器上键入以下内容,让他的 X11 显示器可用于您的 PC:

xhost +

然后,您可以在您的机器上启动您的应用程序,但将显示转发到他的机器 - 这样他就不需要登录到您的机器或输入您的密码:

DISPLAY=<otherPC>:0  yourApp

【讨论】:

以上是关于怎样在PC上打开OpenCV ?的主要内容,如果未能解决你的问题,请参考以下文章

opencv怎样打开自己笔记本的摄像头

用Opencv1.0+VC++6.0怎样打开.mp4格式的视频?

opencv 怎样从MP4格式视频中读取一帧

我如何在一台 Linux PC 中使用 Opencv 构建到另一台?

OpenCV 2.3.1 cxcore210.lib 和 cv210.lib 继承值

OpenCV 和 4K 视频