显示

#include <visp3/gui/vpDisplayGDI.h>
#include <visp3/gui/vpDisplayX.h>int main()
{vpImage<unsigned char>I(1060, 1040, 40);try{#if defined(VISP_HAVE_X11)
//vpDisplayX d(I, vpDisplay::SCALE_5); 降采样显示图像vpDisplayX d(I); //默认是显示原始大小图像
#endifvpDisplay::setTitle(I,"My image");vpDisplay::display(I);vpDisplay::displayCircle(I, I.getHeight()/2, I.getWidth()/2 , 200, vpColor::red, true);//刷新与图像I显示关联的输出缓冲区。 此功能可以查看任何绘图的结果。vpDisplay::flush(I);std::cout << "A click to quit..." << std::endl;vpDisplay::getClick(I);}catch(const vpException &e){std::cout << "catch an exception:" << e.getMessage() << std::endl;}
}

下载visp_ros

参考:
http://wiki.ros.org/visp_ros
http://wiki.ros.org/visp_ros/Tutorials/Howto_install_visp_ros
http://docs.ros.org/hydro/api/visp_ros/html/tutorial-ros-grabber.html

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace
cd ~/catkin_ws
catkin_makecd ~/catkin_ws/src
git clone https://github.com/lagadic/visp_ros.git cd ~/catkin_ws
sudo rosdep init
rosdep update
rosdep install --from-paths src --ignore-src --rosdistro $ROS_DISTROcd ~/catkin_ws
catkin_make -DCMAKE_BUILD_TYPE=Release --pkg visp_roscd ~/catkin_ws
catkin_make install
source ~/catkin_ws/install/setup.bash
source ~/catkin_ws/devel/setup.bash

使用kinectV2+visp_ros显示

在visp_ros下的tutorial/grabber/ros/tutorial-ros-grabber.cpp和CMakeLists.txt

中修改,修改后代码如下所示。

编译后执行

roslaunch kinect2_bridge kinect2_bridge.launch
./tutorial-ros-grabber

CMakeLists.txt

project(tutorial-ros-grabber)cmake_minimum_required(VERSION 2.6)find_package(visp_ros REQUIRED)
find_package(VISP REQUIRED)include_directories(${VISP_INCLUDE_DIRS})
include_directories(${visp_ros_INCLUDE_DIRS})add_executable(tutorial-ros-grabber tutorial-ros-grabber.cpp)
target_link_libraries(tutorial-ros-grabber ${visp_ros_LIBRARIES} ${VISP_LIBRARIES})

tutorial-ros-grabber.cpp

//! \example tutorial-ros-grabber.cpp
#include <visp/vpDisplayX.h>
#include <visp/vpImage.h>
#include <visp_ros/vpROSGrabber.h>int main(int argc, const char** argv)
{try {bool opt_use_camera_info = false;for (int i=0; i<argc; i++) {if (std::string(argv[i]) == "--use-camera-info")opt_use_camera_info = true;else if (std::string(argv[i]) == "--help") {std::cout << "Usage: " << argv[0]<< " [--use-camera-info] [--help]"<< std::endl;return 0;}}std::cout << "Use camera info: " << ((opt_use_camera_info == true) ? "yes" : "no") << std::endl;//vpImage<unsigned char> I; // Create a gray level image containervpImage<vpRGBa> I; // Create a color image container//! [Construction]vpROSGrabber g; // Create a grabber based on ROS//! [Construction]//! [Setting camera topic]g.setImageTopic("/kinect2/qhd/image_color");//! [Setting camera topic]//! [Setting camera info]if (opt_use_camera_info) {g.setCameraInfoTopic("/kinect2/qhd/camera_info");g.setRectify(true);}//! [Setting camera info]//! [Opening]g.open(I);//! [Opening]std::cout << "Image size: " << I.getWidth() << " " << I.getHeight() << std::endl;#ifdef VISP_HAVE_X11vpDisplayX d(I);
#elsestd::cout << "No image viewer is available..." << std::endl;
#endifwhile(1) {//! [Acquisition]g.acquire(I);//! [Acquisition]vpDisplay::display(I);vpDisplay::displayText(I, 20, 20, "A click to quit...", vpColor::red);vpDisplay::flush(I);if (vpDisplay::getClick(I, false))break;}}catch(vpException e) {std::cout << "Catch an exception: " << e << std::endl;}
}

Visp系列学习二:visp显示和visp_ros获取图像相关推荐

  1. 实验二 创建显示系统进程的信息的proc模块

    实验二 创建显示系统进程的信息的proc模块 目录 实验二 创建显示系统进程的信息的proc模块 实验环境 一.实验目的 二.实验内容 三.实验步骤 四.实验总结 实验环境 操作系统版本:ubuntu ...

  2. Visp系列学习一:visp库的安装和测试

    为什么我们需要视觉伺服控制 现今大部分工业机器人是不需要视觉的,通常情况下,末端执行器的位置是不需要直接测量的,我们会测量每个joint的角度利用forward kinematics来计算末端执行器相 ...

  3. arcgis for android(二)显示二维地图

    1.上一节讲了 arcgis for android 入门与提高(一)配置环境https://blog.csdn.net/HB_Programmer/article/details/119967868 ...

  4. 一套监控二处显示用服务器储存,轨道交通智慧消防天眼可视化图像火灾软件分析系统...

    想在成千上万人中找寻你,机器只需在人群中看上一眼.如今,一种类似于人脸识别的图像模式识别技术,正在被用于快速识别火情, 能在火情出现10秒后就准确发出警报,比传统火警预报速度提高至少5倍. 我们三年攻 ...

  5. 人脸课堂签到管理系统(总结二) 摄像头显示

    文章目录 一.摄像头显示 二.摄像头操作类 camera 实现 三.界面类 myWindow 一.摄像头显示 总结一:人脸课堂签到管理系统(总结一) pyqt5界面设计 实现流程图大致如下: 二.摄像 ...

  6. Android初学之二:显示Intent和隐示Intent

    一.显式Intent 1.示范如何实现活动跳转 在按钮的点击事件里: a.调用构造函数Intent(Context packageContext,Class<?>cls),第一参数是上下文 ...

  7. C#制作简单的本地音乐播放器(二)—— 显示歌词

    此篇文章主要补充 C#制作简单的本地音乐播放器(一) 中的"歌词显示"部分的内容. 页面设计部分 相关内容 本程序使用的歌词文件为lrc格式,lrc是英文lyric(歌词)的缩写, ...

  8. Unity知识二:显示和隐藏游戏对象

    游戏中界面需要来回切换,一种方法是把它们都显示出来,用到某个游戏对象的时候让它的位置发生变化,是我们能看到:另一种方法就是游戏对象都放在这里,只是有些显示,而有些要隐藏.当我需要某些物体显示的时候它再 ...

  9. Angular系列学习二:基本的组件说明、自定义组件和部分细节说明

    作者:心叶 时间:2018-07-24 16:41 基本说明 组件是Angular中非常重要的一个东西,是拥有模板的指令,是构成Angular应用的基础和核心,被用来包装特定的功能,应用程序的有序运行 ...

最新文章

  1. python判断CSV文件是否空
  2. Swift Tips - 在 Swift 中自定义下标访问
  3. 从windows计算机中卸载office,如何彻底卸载电脑中的Office组件|Office办公软件卸载不干净怎么办...
  4. 虚拟化服务器的管理与维,服务器虚拟化管理
  5. 练习题 - 基于快速文本标题匹配的知识问答实现(一,基础篇)
  6. MySQL-第六篇DML语句
  7. Java生成验证码合集(一)简单版
  8. JavaScript + jQuery 知识复习总结(附超实用jQuery中文文档)
  9. mysql的可视化工具_Mysql可视化工具Navicat的基本使用
  10. php导出excel数据
  11. 学习笔记:人工势场法
  12. dorado7.x argument type mismatch
  13. (Matlab)复现《改进NSGA_II算法求解考虑运输约束的柔性作业车间节能调度问题》中的交叉操作
  14. 【温故知新】—— React/Redux/React-router4基础知识独立团Demo
  15. 听课感悟——信息与信息特征
  16. viscircles
  17. Linux中Python程序CPU占用高排查
  18. 用Python爬取B站、腾讯视频、芒果TV和爱奇艺视频弹幕
  19. IT公司都不喜欢招培训班出来的学生,那培训班的意义何在呢?
  20. java 下载文件 进度条_使用处理程序下载文件时显示百分比的进度条

热门文章

  1. < CSS技巧 之 弹性布局( Flex布局 ) - 实例篇 >
  2. python 贪吃蛇大作战_Python实现贪吃蛇大作战
  3. 互质 整除 同余
  4. 【话题】药家鑫是否该被判死刑
  5. 光和储能结合模型(Matlab代码实现)
  6. 【leetcode】592.分数加减运算(python)
  7. 法国iut计算机转专业,法国艺术留学能不能够申请转专业.docx
  8. Alibaba与gofair的对比
  9. 整除/ 与 求余% 运算
  10. Spring官方文档解读(五)之自定义 bean 的性质