Windows下的CodeBlocks配置Opencv环境

2023-05-16

目录

1.Opencv下载

2.CodeBlocks下载

3.Cmake编译工具下载

4.编译Opencv源码

5.编译OpenCV库文件

 (1)方式一

 (2)方式二

6.动态链接库文件环境配置

7.CodeBlocks配置

8.编写使用OpenCV例子

9.程序异常终止解决

拓展


提示:建议读者安装或者配置环境变量的路径中最好不要包含任何的特殊符号,比如‘-’或者空格之类的。

1.Opencv下载

https://opencv.org/releases/

 提示:下载完成之后双击解压。

        Opencv目录下面包含build和source两个文件夹,其中build文件夹是已经编译好的VC++版本Opencv库文件,source文件夹是Opencv源码文件,由于采用跨平台编译器GCC/G++,所以需要在Code::Blocks环境下结合CMake用GCC/G++编译链接以生成需要的静态库文件(.a文件)和动态链接库文件(.dll文件);

2.CodeBlocks下载

https://www.codeblocks.org/downloads/binaries/

 提示:

(1)下载完成之后解压安装;

(2)配置CodeBlocks目录下的MinGW\bin系统环境量(Path):高级系统设置->环境变量->系统变量;

如:E:\CodeBlocks\CodeBlocks\MinGW\bin

3.Cmake编译工具下载

https://cmake.org/download/

4.编译Opencv源码

提示:所以文件安装的路径中最好不要有中文或者空格,不然后面对其进行编译时会编译不成功。

解压之后,进入Cmake目录下的bin目录使用cmake-gui.exe进行编译:E:\VisualStudio2019\cMake\cmake-3.25.3-windows-x86_64\bin

第一步中的路径是安装的Opencv中的source目录。

第二步中的路径选择是自己选定的,这里我选定为Opencv下的build/x64/mingw32(其中mingw32是自己新建的文件)。

gcc.exe和g++.exe的选择路径是:安装的CodeBlocks下:E:\CodeBlocks\CodeBlocks\MinGW\bin 

选择好GCC/G++之后,点击finish。

提示:上面的configuring done之后,再一次点击Generate。 之后会在目录:E:\VisualStudio2019\Opencv-4-5-4\opencv\build\x64\mingw32(上面选择的路径)下生成Code::Blocks环境下的OpenCV库项目文件OpenCV.cbp.

 

5.编译OpenCV库文件

 (1)方式一

        双击上面生成的OpenCV.cbp,如下:

点击Build => Build and run即可进行编译了。 

 (2)方式二

        进入E:\VisualStudio2019\Opencv-4-5-4\opencv\build\x64\mingw32下,使用windows下的命令行执行:

mingw32-make即可

 提示:编译过程中可能会产生一些Warning,不用太担心,继续让它执行即可。

执行mingw32-make完成之后执行:mingw32-make install(会下载一些有关OpenCV的文件):

 

其中下载的文件被存放在:

E:\VisualStudio2019\Opencv-4-5-4\opencv\build\x64\mingw32\install

进入install文件夹之后:

 

6.动态链接库文件环境配置

        这里所说的库文件是以lib开头的文件,为便于设置库文件路径名,在Code::Blocks中将lib替换为l,如lopencv_core454.dll对应为库文件libopencv_core454.dll。其中的末尾454表示库文件的版本号。

上面的步骤执行完成之后,目录

E:\VisualStudio2019\Opencv-4-5-4\opencv\build\x64\mingw32\lib和

E:\VisualStudio2019\Opencv-4-5-4\opencv\build\x64\mingw32\bin

下生成一些动态链接库文件:

将路径E:\VisualStudio2019\Opencv-4-5-4\opencv\build\x64\mingw32\bin和

E:\VisualStudio2019\Opencv454\opencv\build\x64\mingw32\lib

加入到系统环境变量(Path)中:

 

 

7.CodeBlocks配置

提示:打开安装的CodeBlocks

提示:下面配置选择的路径为:

E:\VisualStudio2019\Opencv-4-5-4\opencv\build\x64\mingw32\lib 

 

 

 

8.编写使用OpenCV例子

 

 

 

#include<opencv2/core.hpp>
#include<opencv2/highgui.hpp>

using namespace cv;

int main()
{
    //读取一张图片
    Mat image = imread("images/GuiZhou.jpg");
    //创建一个名称为My Image的窗口
    namedWindow("My Image");
    //显示图片
    imshow("My Image",image);
    //设置显示等待时间
    waitKey(5000);
    return 0;
}

9.程序异常终止解决

运行程序(自己可能会惊讶得到下面的结果) 

提示:怎么回事,为什么编译的时候不出错,运行的时候程序直接崩溃了。 

解决方式如下:

 

结果显示:

 

拓展

由于我们上面在CodeBlocks的配置过程都是全局的,也就是说下一次再写OpenCV代码时,直接和上面创建工程的方式,创建即可。但是如果没有上面方式全局进行配置,可以像下面的方式对每一个项目文件进行单独的配置OpenCV环境。

 

参考链接:

《数字图像处理》-第四版

https://zhuanlan.zhihu.com/p/26468685

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Windows下的CodeBlocks配置Opencv环境 的相关文章

  • Perl:管理 Windows 上的路径编码

    我正在努力处理包含非英文字符的路径 Activestate Perl Windows XP 如何打开 写入 复制等位于包含希腊语 俄语 法语重音字符的路径中的文件 假设我要将 text txt 文件复制到的目录是 C Documents a
  • OpenCV 地板分割检测

    我正在研究一种检测图像中地板的方法 我试图通过将图像缩小为颜色区域然后假设最大区域是地板来实现此目的 我们对机器人的运行环境做出一些相当广泛的假设 我正在寻找一些关于适合这个问题的算法的建议 任何帮助将不胜感激 编辑 具体来说 我正在寻找一
  • ReadProcessMemory 上出现错误 299

    尝试从游戏内存中读取实体名称 使用 ce 检查时指针 100 正确 读取 写入浮点 整数值没有问题 32 位进程 游戏也是如此 尝试在 x64 中编译代码 但没有帮助 GetLastError 返回 nr 299 错误 部分 复制 299
  • 从某个文件夹启动随机批处理文件

    问题是这样的 我有一个名为 abc 的文件夹 其中包含几个批处理文件 它们的命名如下 abc1 batabc2 batabc3 batabc4 bat 等等 我需要一个脚本 当我单击它时 它会随机启动其中一个批处理文件 我需要的脚本将存储在
  • 如何使用 WinAPI 读取 MessageBox 文本

    如何读取标准Win消息框 Info 的消息 Using SendMessage this HandleControl WM GETTEXT builder Capacity builder 我只能读取消息框的标题或按钮的文本 但不能读取消息
  • C++ OpenCV imdecode 慢

    我将图像的字节数组从 C 发送到 C 库 我使用 OpenCV 版本 3 3 1 解码图像 BMP 图像解码速度很快 但 JPEG 图像解码速度很慢 如何加快 JPEG 图像的解码时间 多线程 GPU 解码性能 Resolution For
  • OpenCV SVM 给出奇怪的预测结果

    我对 OpenCV 和支持向量机都很陌生 我想使用 SVM 训练具有两个标签的数据集 然后预测给定集合的标签 我当前的集合包含大约 600 行 具有相等的类分布 1 为 300 行 1 为 300 行 包含 34 列 这是我当前用于设置 O
  • 如何获取属于某个进程的打开句柄的计数?

    您可以使用该程序流程浏览器 http technet microsoft com en us sysinternals bb896653查看正在运行的应用程序有多少个句柄 有没有办法用Delphi代码来获取这个数字 我有兴趣跟踪应用程序本身
  • 在 python 2 或 python 3 中编写 csv 文件的便携式方法

    在我的 Windows 机器上 我通常在 python 2 中这样做来编写 csv 文件 import csv f open out csv wb cr csv writer f delimiter cr writerow a b c f
  • 使用 Brew 安装 OpenCV 永远不会完成

    所以我尝试使用 Homebrew 安装 opencv 但它不起作用 我用了brew tap homebrew science进而brew install opencv发生的情况是 gt Installing opencv from home
  • 该进程无法访问该文件,因为该文件正在被另一个进程使用

    当我从 bat 文件启动 net 控制台应用程序时 例如start myapp exe 然后 myapp exe 尝试将文件写入其当前目录 尽管我收到 net 运行时错误 声称该文件正在被另一个应用程序使用 没有其他应用程序在运行 http
  • PSExec 中的会话 ID

    Psexec 无法在远程会话上为我显示记事本 GUI 因此 我尝试获取会话 ID 如下所示 c Users Amitra Downloads PSTools gt PsExec u administrator p force 135 20
  • Powershell DSC Pull 服务器引发内部错误 - Microsoft.Isam.Esent.Interop 未找到

    我已按照 Powershell org 中的说明进行操作DSC Book http powershell org wp ebooks 设置 http Pull 服务器 Windows 2012 服务器 以与 DSC 一起使用 我设置了 ht
  • 如何仅回显“开”或“关”文本?

    大家都知道 在 Windows 命令文件中 cmd echo on echo off 启用和禁用回显 但是如何仅回显文本 on 或文本 off IE 如何发送文本 on off to stdout 目标系统 Windows XP 那么在 D
  • 如何使用 cython 编译扩展?

    我正在尝试从示例页面编译一个简单的 cython 扩展here http docs cython org src userguide tutorial html在我安装了 Python 2 6 64 位版本的 Windows 7 64 位计
  • PE 文件中的跳转存根

    最近我反汇编了一个DLL 用c c 编写 发现代码段内有很多 跳转存根 这些存根除了跳转到 DLL 内的函数之外什么也不做 eg jmp foo jmp foo2 为什么编译器 Visual studio 2012 在二进制文件中包含这些函
  • 带图像的简单 GUI [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我试图在简单的 GUI 上显示一些卡
  • 如何从页眉和/或页脚确定 PE 可执行文件的大小

    假设您有要雕刻的数据流或字节块 如何确定可执行文件的大小 PE 可执行文件格式中有许多标头 但是我使用哪些标头部分来确定 如果可能 可执行文件的总长度 这是文件格式的图片 如果PE文件格式良好 计算可以简化为 伪代码 size IMAGE
  • 批处理文件 - 读取特定行,并将该行中的特定字符串保存为变量

    有没有办法让 for f 循环 或其他任何东西 读取特定行 这是我到目前为止的代码 它读取每一行的第一个单词 echo off set file readtest txt for f tokens 1 delims A in file do
  • 让 Jenkins 对远程用户不可见

    我的本地 Windows 设备上有一个 Jenkins 服务器 但我想让它对外界不可见 有关服务器的办公室规则 明显且不隐晦的 效果令人满意的方法是设置防火墙规则来阻止对其端口的传入访问 但我认为必须有一个 Jenkins 设置来阻止它向除

随机推荐