Windows配置ArUco

2023-05-16

windows10
vs2019
opencv3.4.6

------------------------------------------------------------------------------------------------------------------------------------------

注意,一定要选择与opencv版本一样的opencv_contrib进行编译,否则将会出现错误,有很多的工程不能编译通过,不能产生相应的lib文件。

下载contrib库

contrib库(下载3.4.6版本):https://github.com/opencv/opencv_contrib/releases

cmake-gui地址(下载最新版3.15.2):http://www.cmake.org/cmake/resources/software.html

用CMake编译OpenCV3.4.6

点击configure,如果有红的就继续点configure,直到红色都消失

用CMake编译OpenCV_contrib3.4.6

把opencv_contrib-3.4.6文件夹放到C:\opencv目录下,在cmake-gui中找到OPENCV_EXTRA_MODULES_PATH,在它的Value处填入opencv_contrib-3.4.6\modules路径。并勾选OPENCV_ENABLE_NONFREE。

 

然后点击configure,如果报错或者有红的,继续点configure,直到红色都消失

点击generate

用VS2019编译生成debug和release库

  1. 打开C:\opencv\mybuild目录下的OpenCV.sln

  2. 编译debug版本库:在“解决方案'OpenCV'(416个项目)”上面点击右键-->重新生成解决方案。

  3. 找到CMakeTargets中的INSTALL,然后右键选择“仅限于项目”-->“仅生成INSTALL”,然后就在C:\opencv\mybuild\install中发现了许多东东。至此,debug版本的opencv的库文件就安装完成了。release版本的,方法相同,重复2、3即可。

        遇到问题:LNK1104 无法打开文件“python37_d.lib” 解决办法

                          当出现opencv的.dll无法找到的问题的时候用一下处理方法

      4.                   将opencv\build\x*\vc*\bin  复制相应的dll文件到C Windows System32下,这样之后就可以找到了    

重新配置环境


    1.为计算机添加系统变量:C:\opencv\my_build\install\include\x64\vc16\bin  ;
    

    右键电脑【属性】 ,【高级系统设置】 ,【环境变量】 ,  【系统变量】【Path】, 在变量值后加  编译目录\install\x64\vc16\bin 的完整路径 
    
 
    添加用户变量设置:

    变量名:OPENCV变量值:C:\opencv\my_build\install\include
    
    2.属性管理器-->设置-->VC++目录-->包含目录,添加:

C:\opencv\my_build\install\include

C:\opencv\my_build\install\include\opencv

C:\opencv\my_build\install\include\opencv2

    3.VC++目录-->库目录,添加:
          C:\opencv\my_build\install\include\install\x64\vc16\lib
    4.连接器——>输入——>附加依赖项添加库,346是版本opencv3.4.6,lib文件夹下只有好多个.lib,都加入

opencv_aruco346d.lib
opencv_bgsegm346d.lib
opencv_bioinspired346d.lib
opencv_calib3d346d.lib
opencv_ccalib346d.lib
opencv_core346d.lib
opencv_datasets346d.lib
opencv_dnn_objdetect346d.lib
opencv_dnn346d.lib
opencv_dpm346d.lib
opencv_face346d.lib
opencv_features2d346d.lib
opencv_flann346d.lib
opencv_fuzzy346d.lib
opencv_hdf346d.lib
opencv_hfs346d.lib
opencv_highgui346d.lib
opencv_img_hash346d.lib
opencv_imgcodecs346d.lib
opencv_imgproc346d.lib
opencv_line_descriptor346d.lib
opencv_ml346d.lib
opencv_objdetect346d.lib
opencv_optflow346d.lib
opencv_phase_unwrapping346d.lib
opencv_photo346d.lib
opencv_plot346d.lib
opencv_reg346d.lib
opencv_rgbd346d.lib
opencv_saliency346d.lib
opencv_shape346d.lib
opencv_stereo346d.lib
opencv_stitching346d.lib
opencv_structured_light346d.lib
opencv_superres346d.lib
opencv_surface_matching346d.lib
opencv_text346d.lib
opencv_tracking346d.lib
opencv_video346d.lib
opencv_videoio346d.lib
opencv_videostab346d.lib
opencv_xfeatures2d346d.lib
opencv_ximgproc346d.lib
opencv_xobjdetect346d.lib
opencv_xphoto346d.lib

 

测试代码——生成aruco_board


#include <opencv2\highgui.hpp>
#include <opencv2\aruco.hpp>
#include <opencv2\aruco\dictionary.hpp>
#include <opencv2\aruco\charuco.hpp>
#include <opencv2\core.hpp>
#include <opencv2\imgproc\imgproc.hpp>
#include <opencv2\opencv.hpp>
#include <vector>
#include <iostream>

using namespace std;
using namespace cv;

int main()
{
	int markersX = 5;//X轴上标记的数量
	int markersY = 5;//Y轴上标记的数量   本例生成5x5的棋盘
	int markerLength = 100;//标记的长度,单位是像素
	int markerSeparation = 20;//每个标记之间的间隔,单位像素
	int dictionaryId = cv::aruco::DICT_4X4_50;//生成标记的字典ID
	int margins = markerSeparation;//标记与边界之间的间隔
 
	int borderBits = 1;//标记的边界所占的bit位数
	bool showImage = true;

	Size imageSize;

	imageSize.width = markersX * (markerLength + markerSeparation) - markerSeparation + 2 * margins;

	imageSize.height =markersY * (markerLength + markerSeparation) - markerSeparation + 2 * margins;

	Ptr<aruco::Dictionary> dictionary =aruco::getPredefinedDictionary(aruco::PREDEFINED_DICTIONARY_NAME(dictionaryId));

	Ptr<aruco::GridBoard> board = aruco::GridBoard::create(markersX, markersY, float(markerLength),float(markerSeparation), dictionary);

	// show created board
	Mat boardImage;
	board->draw(imageSize, boardImage, margins, borderBits);

	if (showImage) {
		imshow("board", boardImage);
		waitKey(0);
	}
	return 0;

}

 

 

 

 

 

 

OpenCV 3.1.0添加opencv_contrib模块(Windows)

OpenCV3.1.0安装配置与OpenCV_contrib库配置

基于VS2015和opencv 3.4.1平台的opencv_contrib配置

WIN10+VS2015+opencv3.4.4+opencv_contrib-3.4.4环境配置

CMake3.11.1+Opencv3.4.0+opencv_contrib3.4+VS2015(vc14)+Win10配置成功

Win10下已经安装opencv,如何再安装opencv_contrib

【OpenCV/aruco】校准相机(Camera Calibration) Demo

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

Windows配置ArUco 的相关文章

  • 批处理文件 FOR /f 标记

    任何人都可以逐行准确解释以下代码是如何工作的 我真的迷路了 我一直在尝试学习如何使用 FOR 命令 但我不明白这一点 echo off for f tokens delims f in myfile do set line f call p
  • 导入错误:无法导入名称线程

    这是我第一次学习Python 我继续尝试线程这篇博文 http www saltycrane com blog 2008 09 simplistic python thread example 问题是它似乎已经过时了 import time
  • 用于验证 IIS 设置的 Powershell 脚本

    是否可以使用 Power Shell 脚本获取 IIS 设置 我希望使用脚本获取 检查以下信息 检查 Windows 身份验证提供程序是否正确列出 协商 NTLM 检查是否启用了 Windows 身份验证 Windows 身份验证高级设置
  • 由于图形处理单元配置,不支持 Windows Phone 模拟器(Mac 上的 Windows 7)

    启动 Windows Phone 模拟器时出现错误 不支持 Windows Phone 模拟器 因为您的计算机没有所需的图形处理单元配置 如果没有图形处理单元 XNA 框架页面将无法运行 您想继续启动模拟器吗 当我尝试访问网页 任何网页 时
  • Qt(在 Windows 上)将权限级别设置为“requireAdministrator”

    我正在使用 Qt Creator 并努力制作 exe文件默认以管理员身份运行 在线阅读所有解决方案我试图将这一行放入我的 pro file QMAKE LFLAGS MANIFESTUAC level requireAdministrato
  • Git 扩展 - 无法在 Windows 上推送到网络驱动器中的 git bare 存储库

    我正在 Windows 上学习 git 我已经安装了 Git 扩展 版本 2 47 3 并使用了它 我在我的 C 单元中创建了一个裸存储库 作为中央存储库 并在硬盘中的其他任何位置创建了个人存储库 我对硬盘中的这两个存储库进行提交 推送和拉
  • Kerberos 双跳

    我们遇到了臭名昭著的 Kerberos 双跳问题 这是一个全新的域 是从以前使用模拟和委派的另一个提供商迁移而来的 我们已将操作系统升级到最新的 SQL 服务器 2017 WPF 应用程序 使用域凭据 gt Web 服务 IIS 10 上的
  • 访问图像的 Windows“标签”元数据字段

    我正在尝试进行一些图像处理 所以现在我正在尝试读取图像 exif 数据 有 2 个内置函数可用于读取图像的 exif 数据 问题是我想读取图像标签 exifread and imfinfo这两个函数都不显示图像标签 Is there any
  • Qt 支持 Windows 蓝牙 API 吗?

    谁能告诉我 Qt 是否支持 Windows 蓝牙 API 如果是这样 您能否分享一些有关如何使用它的信息 自上次答复以来 这个问题的答案发生了一些变化 Qt 5 2 版为 Linux BlueZ 和 BlackBerry 设备实现了蓝牙 A
  • 在 Windows 上不使用 OpenSSL 从 pfx 文件或证书存储中提取私钥

    正如标题所示 我想在不使用 OpenSSL 或任何其他第三方工具的情况下导出我的私钥 如果我需要一个 cer文件或 pfx我可以通过 MMC 或 PowerShell 轻松导出这些文件pkiclient但我找不到获取私钥的方法 https
  • 如何从Windows阻止社交媒体[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我想根据时间阻止我的电脑上的社交媒体 晚上 9 点后屏蔽 上午 11 点后解锁 如家长控制 我尝试过关注但失败了 创建了
  • 如何在批处理文件中回显换行符?

    如何从批处理文件输出中插入换行符 我想做类似的事情 echo hello nworld 这会输出 hello world Use echo hello echo echo world
  • 在哪里可以获得 PHP 5.3+ 的 runkit DLL 扩展?

    这是一个简单的问题 我在哪里可以获得 PHP 5 3 版本的 runkit 扩展 它的手册 http php net manual en book runkit php http php net manual en book runkit
  • NodeJS Express Windows 最大连接数设置

    在哪里设置nodejs的最大连接数 用于使用express get 在 Windows 10 中 与linux中的最大文件 描述符 设置有关吗 有该设置的 Windows 版本吗 最好是在nodejs中进行设置 以便在迁移到unix时兼容
  • Tensorflow 导入错误:没有名为“tensorflow”的模块

    我在 Windows Python 3 5 Anaconda 环境中安装了 TensorFlow 验证成功 有警告 tensorflow C gt python Python 3 5 3 英特尔公司 默认 2017 年 4 月 27 日 1
  • 通过插件管理器在 Notepad++ 中配置代理设置

    我想在 Notepad 中配置代理设置 以允许通过代理从互联网下载 在从网上搜索如何执行此操作后 我了解到我需要通过 设置 按钮在插件管理器中执行此操作 当我转到插件 gt 插件管理器 gt 显示插件管理器 gt 设置时 我看到下面的对话框
  • 尽管 if 语句,Visual Studio 仍尝试包含 Linux 标头

    我正在尝试创建一个强大的头文件 无需更改即可在 Windows 和 Linux 上进行编译 为此 我的包含内容中有一个 if 语句 如下所示 if defined WINDOWS include
  • Windows 中的蓝牙 AVRCP 命令会触发哪些事件

    可以这么说 只是在做一些高级侦察 对于我的潘多拉客户 Elpis http elpis adamhaile net 我支持全局媒体键 键盘上的 MediaPlayPause MediaNext 等 并且我希望能够支持AVRCP http e
  • 如何在自托管 WCF 中获取多部分表单数据?

    我已经搜索了很长一段时间 但没有找到我要找的东西 我在 Windows 应用程序中自行托管了一个 http WCF 现在 在我的服务方法之一中 我需要接收一个文件和一些表单数据字段 在类似的问题中 情况要么发送一个文件 这是通过流数据然后转
  • 将 value 转换为 bool 的魔法

    今天我意识到将值转换为 bool 是一种魔法 int value 0x100 unsigned char uc static cast

随机推荐