显示

#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. css中绝对定位中的left和top属性
  2. python使用statsmodels包中的tsaplots函数可视化时间序列数据所有滞后位置个数(级别)的自相关性(plot the autocorrelation function)
  3. day_06、面向对象
  4. C enum(枚举)
  5. libopencv_core.so: file not recognized: File format not recognized
  6. opencv+python机读卡识别(四)百度API进行数字识别
  7. db2 迁移mysql,mysql 迁移 db2
  8. 知识图谱 | 阿里小蜜多模态知识图谱的构建及应用
  9. 最新AZ自动发卡网源码
  10. 数据结构(c语言版)各章内容总结
  11. windows powershell快捷键
  12. 偏微分方程中常用的不等式
  13. 核定征收的个体户,年营业额不超过120万,还需要缴纳个税吗?
  14. Last-Modified和Etag
  15. GitHub代码,资源下载慢?怎么办?
  16. 微信内置浏览器在ios10中不能播放视频问题(无解)
  17. Git-储藏(Stashing)
  18. 谈谈双活业务中心和异地容灾备份设计
  19. U-BOOT 下载 GitHub
  20. 开源项目推荐:NS游戏模拟器Ryujinx

热门文章

  1. 2022电大国家开放大学网上形考任务-企业集团财务管理非免费(非答案)
  2. 如何从ADI官网下载PCB库
  3. 山西省大学计算机专业排名,山西省:排名前14的大学!山西的大学分为5档,前2档最难考!...
  4. Android-APK
  5. java8 四大函数式接口 和 用于数据处理的 stream流 使用详解
  6. 小米5s 原生android,羡慕谷歌Pixel?其实就是国外版小米5s
  7. JavaScript数据结构与算法 - 树
  8. Oracle 10g R2 Student PPTs
  9. 解决json string转object,value值存在英语双引号,无法解析问题
  10. 组播路由协议基础——PIM-SM BSR工作机制