一、给VS2012MFC添加DOS窗口

在相关的.cpp中添加:

#include #include 

添加控制台初始化函数:

需要调用AllocConsole()函数

//控制台初始化void InitConsoleWindow(){  AllocConsole();  HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);  int hCrt = _open_osfhandle((long)handle, _O_TEXT);  FILE * hf = _fdopen(hCrt, "w");  *stdout = *hf;}

InitConsoleWindow()需要放在InitInstance()中

BOOL CASIAApp::InitInstance(){    AfxEnableControlContainer();    SetRegistryKey(_T("应用程序向导生成的本地应用程序"));    InitConsoleWindow();    printf("欢迎关注微信公众号:马少爷!\n");  }

二、相机坐标系下坐标

X是左右

左负右正

-37~37

Z是上下

近大远小

-25~25

三、窗口设置成动态的

初始化时设置大小

SetWindowPos(0, 0, 0, 1400, 750, SWP_NOZORDER);//设置窗口大小和屏幕大小一致

四、OpenCV显示图像灰色

没有延时显示造成的

需要在imshow()后面添加

system("pause")或waitKey(x);

五、OpenCV 3D显示Viz模块

5.1. OpenCV Viz 模块是什么

  1. OpenCV_Viz 模块是OpenCV的3D 可视化模块,存在于OpenCV 2.4.9 or later 版本中;

  2. 它是依赖于VTK(Visualization Toolkit) 进行显示的。

5.2. 如何编译

官方发布的Opencv 安装包中并没有编译Viz 模块,所以如果你想要使用这个功能,需要自己用Cmake 编译。

  1. 自行编译需要先编译VTK,再在编译opencv 中添加VTK相关模块;

  2. 这里有编译好的opencv310, 32位的release 版本。

5.3. 如何使用

(1)配置opencv 环境,包含头文件

// include opencv header file#include "opencv2/opencv.hpp"#include "opencv2/viz.hpp"

(2)初始化

cv::viz::Viz3d viewer;cv::Mat cloudMat;

(3)代码

#include "opencv2/opencv.hpp"#include "opencv2/viz.hpp"using namespace cv;using namespace std;int main(){  //加载深度图(这里用的kinect2 的深度图)  std::string filename="C:\\user\\desktop\\1.png);  cv::Mat depth = cv::imread(filename,CV_16UC1);  //初始化  viz::Viz3d window("window");  //显示坐标系  window.showWidget("Coordinate", viz::WCoordinateSystem());  int height=depth.rows;  int width = depth.cols;  //创建一个储存point cloud的图片  Mat point_cloud = Mat::zeros(height, width, CV_32FC3);  //point cloud 赋值,其中 fx,fy,cx,cy 为Kinect2 的内参  double fx = 368.096588, fy = 368.096588, cx = 261.696594, cy = 202.522202;  for(int row=0; row    for (int col = 0; col < depth.cols; col++)    {      point_cloud.at(row, col)[2] = depth.at(row,col);      point_cloud.at(row, col)[0] = depth.at(row, col)*(col - cx) / fx;      point_cloud.at(row, col)[1] = depth.at(row, col)*(row - cy) / fy;    }  cv::viz::WCloud cloud(point_cloud);  window.showWidget("cloud",cloud);  while (!window.wasStopped())  {    window.spinOnce(1, false);  }  return 0;}

(4)从点云中获取xyz坐标

vector<cx_point3r_t> CenterlaserPoint;cx_point3r_t point;for (unsigned x = 0; x < pc.points.width(); x++){  cx::Point3f dx = pc.points.at<:point3f>(1, x);//(X,y,z,相机坐标系下坐标)  //cout<  if (dx.z <200 && dx.z >-200)  {        point.a = x;    point.b = 0;    point.c = int(10*dx.z);    CenterlaserPoint.push_back(point);    cout << "point.a" << point.a << endl;//-39.036    //cout << "point.c" << point.c << endl;//-39.036    //cout << "CenterlaserPoint.z" << (int)(CenterlaserPoint[x].c*10) << endl;//-39.036  }}

5.4 测试结果

六、VS2019安装

1、下载最新版的.net

https://dotnet.microsoft.com/download

2、安装VS

https://visualstudio.microsoft.com/zh-hans/

如果运行以后无法打开,

3、打开VS2019

测试完毕!

7、SDK安装

1、SDK安装

以管理员身份运行:

安装完毕:

2、VisionBlox安装

3、Halcon支持安装

参考文献:

http://unanancyowen.com/en/opencv_viz_with_kinectv2/

推荐:机器人实时纠偏系统(一)

机器人实时纠偏(二)OpenCV+VS开发环境配置(三)结构光视觉的焊接机器人纠偏(四)结构光视觉的机器人焊接(五)结构光视觉的机器人焊接(六)机器人初始点导引(七)MATLAB标定相机参数(八)机器人的手眼标定(九)机器人坐标获取(十)机器人调试(十一)TCP/IP客户端API编程(十二)结构光传感器上位机界面多线程编程(十三)TCP&UDP(十四)C/C++ Programing(十五)机器人扫描与跟踪调试(十六)结构光传感器库函数(十七)结构光传感器编程(十八)C/C++ Programing(十九)C/C++ Programing(二十)结构光传感器编程(二十一)DX200操作要领(二十二)DX200操作要领(二十三)工装轴协调(二十四)无夹具协调(二十五)图像处理调试(二十六)STM32MODBUS_CRC编程(二十七)

在C++中调用Matlab函数(二十八)

机器人手眼标定MATLAB及C++实现

机器人位姿运算及Eigen的使用(三十)

OpenCV与Eigen矩阵运算(三十一)

VS中数据读写及OpenCV拟合(三十二)

VS2013配置OpenGL库(三十三)

曲线拟合/插值(三十四)

曲线拟合绘制滤波及机器人平移(三十五)

DX200操作要领—示教1(三十六)

直接打开与平移变换(三十七)PAM与镜像平移变换(三十八)

修改与编辑程序(三十九)

YRC1000 宏程序命令(四十)

程序编辑与试运行(四十一)

程序编辑与再现(四十二)

再现(四十三)

程序管理(四十四)

便捷功能(四十五)

便捷功能(四十六)

椭圆拟合(四十七)

RANSAC直线拟合(四十八)

读写CSV文件类(四十九)

RANSAC直线拟合(五十)

法向量、旋转矩阵计算(五十一)

机器人手眼标定与变量设置调试(五十二)

20200715调试记录(五十三)

20200717调试记录(五十四)

C++~RANSAC拟合圆/随机数产生(五十五)

安川机器人外部轴协调(五十六)

安川机器人Motoplus编程(五十七)

安川机器人Motoplus编程(五十八)

安川机器人Motoplus编程(五十九)

安川机器人Motoplus编程(六十)

安川机器人Motoplus编程(六十一)

机器人调试(六十二)
机器人调试(六十三)

机器人调试(六十四)

机器人调试(六十五)

VS2019调试查看变量_机器人调试(六十六)相关推荐

  1. VS2019调试查看变量_PL/SQL调试存储过程?看这篇就够了

    概述 虽然现在存储过程相对比较少用了,但是平时接触不可避免的要跟存储过程打交道,当需要自己写的时候总会碰到这或那的错误,这个时候一般要怎么调试呢? PL/SQL调试 PL/SQL中提供了[调试存储过程 ...

  2. VS2019调试查看变量_单片机编程软件一点通,IAR单片机编程软件工程调试方法

    单片机编程软件通常以Keil和IAR为主,大家在选择适合自己的单片机编程软件时可依据工程要求而定.本文内容针对IAR单片机编程软件,主要讲解该单片机编程软件的工程调试使用方法.如果你对本文将要讲解的内 ...

  3. VS2019调试查看变量_你很可能需要知道这个调试小技巧

    缘起 最近在调试的时候,需要观察第三方容器中每一个元素的值.默认情况下,vs 并不知道如何显示第三方容器的内容,只能手动观察容器中的每一个值,超级不方便.我找到一个非常给力的好办法,你还知道其它好办法 ...

  4. 合肥工业大学机器人技术五十六题

    合肥工业大学机器人技术五十六题 题目要求 //拿球后行为,利用已有 Worldmodel(21) (1)在 playOn 模式下,拿到球以后朝前方快速带球. (2)在 PlayOn 模式下,拿到球以后 ...

  5. 【正点原子STM32连载】第六十六章 综合测试实验摘自【正点原子】STM32F103 战舰开发指南V1.2

    1)实验平台:正点原子stm32f103战舰开发板V4 2)平台购买地址:https://detail.tmall.com/item.htm?id=609294757420 3)全套实验源码+手册+视 ...

  6. 第六十六章 Caché 函数大全 $TRANSLATE 函数

    文章目录 第六十六章 Caché 函数大全 $TRANSLATE 函数 大纲 参数 描述 `$TRANSLATE`和`$REPLACE` 示例 第六十六章 Caché 函数大全 $TRANSLATE ...

  7. 第六十六章 SQL命令 REVOKE

    文章目录 第六十六章 SQL命令 REVOKE 大纲 参数 描述 撤销的角色 撤销对象权限 撤销对象所有者特权 撤销表级和列级特权 CASCADE 或 RESTRICT 对缓存查询的影响 IRIS S ...

  8. 人生哲理名言六十六条

    一提到哲理好像是老年人的专利,其实年青人多看看和学学哲理也是有好处的.摘录哲理名言共享. 人生哲理名言六十六条: 1人之所以痛苦,在于追求错误的东西. 2如果你不给自己烦恼,别人也永远不可能给你烦恼. ...

  9. QT开发(六十六)——登录对话框的验证机制

    QT开发(六十六)--登录对话框的验证机制 一.验证码机制 为了避免被恶意程序***,程序通常要使用安全机制.验证码机制是提供产生随机验证码,由用户识别填写来判断用户有效性的安全机制. 验证码必须动态 ...

最新文章

  1. matlab肌电信号平滑滤波_BCIduino 滤波和频谱计算操作
  2. Python统计学-006:描述统计-方差
  3. 双人五子棋对战(需要EasyX图像库)
  4. python编码读法-python中文读法
  5. Debian中编译内核
  6. Linux SO_KEEPALIVE属性,心跳
  7. Android 系统(218)---Android的事件分发机制以及滑动冲突的解决
  8. html提值到php 冒泡,如何实现Html事件冒泡
  9. hbase shell删除一行_HBase安装phoenix实战shell操作
  10. 一个黑客都要学习什么语言呢?
  11. 计算机驱动安装的几个方法,显卡驱动怎么安装 三种方法教程
  12. 2017年电子设计大赛(B题 滚球控制系统)赛后总结
  13. JavaScript写入文件到本地
  14. SQL——语法基础篇(上)
  15. c语言高级程序知识,《高级语言程序设计》知识点总结(一)
  16. cos47度怎么用计算机算,cos47度等于多少
  17. 安卓开发删除文件产生0KB文件
  18. ✨【Code皮皮虾】一次通过99.90%,思路详解【找到需要补充粉笔的学生编号】
  19. linux关于压缩解压tar包
  20. 大数据技术在金融行业的应用前景

热门文章

  1. Ubuntu18.04安装显卡驱动
  2. PulseAudio VS AudioFlinger(七)
  3. sshd启动报错解决:sshd re-exec requires execution with an absolute path
  4. Lisp入门(好文)
  5. Android java和C的Socket通信demo(可用)
  6. 深入理解Dalvik字节码指令及Smali文件
  7. wpf之DragDrop研究
  8. 网站未备案不能访问,怎么用ip加端口的方式建站?
  9. 漏洞防御方案_越权漏洞原理及防御方案
  10. python识别银行卡数字_Python银行卡数字识别项目 (Opencv)