ROS(8):Lubuntu下openCV 开发

本文涉及的产品
资源编排,不限时长
简介: 本文的原文连接是: http://blog.csdn.net/freewebsys/article/details/48379799 未经博主允许不得转载。 博主地址是:http://blog.csdn.net/freewebsys1,关于openCVOpenCV于1999年由Intel建立,如今由Willow Garage提供支持。OpenCV是一个基于(开源

本文的原文连接是: http://blog.csdn.net/freewebsys/article/details/48379799 未经博主允许不得转载。
博主地址是:http://blog.csdn.net/freewebsys

1,关于openCV

OpenCV于1999年由Intel建立,如今由Willow Garage提供支持。OpenCV是一个基于(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和Mac OS操作系统上。它轻量级而且高效——由一系列C函数和少量C++类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。
下载地址:
http://opencv.org/downloads.html

2,开发环境搭建

参考之前的文章,主要是ubuntu安装了ROS就可以使用openCV。
Lubuntu 15.04也可以安装ROS,参考之前写的文章:
http://blog.csdn.net/freewebsys/article/details/48466543

3,开发第一个hello world 显示图片

http://docs.opencv.org/doc/tutorials/introduction/linux_gcc_cmake/linux_gcc_cmake.html
编写demo1.cpp代码:

#include <stdio.h>
#include <opencv2/opencv.hpp>

using namespace cv;
using namespace std;

int main(int argc, char **argv) {
    Mat image;
    //读取图片
    image = imread("lena.jpg", 1);
    if (!image.data) {
        cout << "No image data \n" << endl;
        return -1;
    }
    namedWindow("Display Image", WINDOW_AUTOSIZE);
    imshow("Display Image", image);
    waitKey(0);
    return 0;
}

关于Cmake:
CMake 是一个跨平台的自动化建构系统,它使用一个名为 CMakeLists.txt 的文件来描述构建过程,可以产生标准的构建文件,如 Unix 的 Makefile 或Windows Visual C++ 的 projects/workspaces 。文件 CMakeLists.txt 需要手工编写,也可以通过编写脚本进行半自动的生成。CMake 提供了比 autoconfig 更简洁的语法。
编辑:CMakeLists.txt

cmake_minimum_required(VERSION 3.0)
project(demo1)
find_package( OpenCV REQUIRED )

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")

set(SOURCE_FILES demo1.cpp)
add_executable(demo1 ${SOURCE_FILES})
target_link_libraries( demo1  ${ALL_LIB_RAF} ${OpenCV_LIBS} )

执行:必须有一张叫lena.jpg 的图像。

cmake .
make
./demo1 

4,视频demo

首先使用的是virtualbox环境开发,好处是开发方便,Linux环境。
但是没有办法调用摄像头,其实还是可以使用摄像头的。
首先下载:”Oracle VM VirtualBox” 和 “Oracle VM VirtualBox Extension Pack”
http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html
安装Virtualbox和Extension Pack。
首先启动virtualbox虚拟机,查询摄像头id。增加到虚拟机上面。

$ VBoxManage list webcams   
Video Input Devices: 1
.1 "FaceTime HD Camera"
CC24399GSAD99VVD3

$ VBoxManage controlvm "Lubuntu" webcam attach CC24399GSAD99VVD3

必须启动虚拟机否则报错:

VBoxManage: error: Machine 'Lubuntu' is not currently running

一次执行就可以,以后可以正常使用了。

编辑demo2.cpp

#include <stdio.h>
#include <opencv2/opencv.hpp>

using namespace cv;
using namespace std;

int main(int argc, char **argv) {
    VideoCapture capture(0);
    while(1){
        Mat frame;
        capture >> frame;
        imshow("read video" , frame);
        waitKey(30);
    }
    return 0;
}

编辑CMakeLists.txt:

cmake_minimum_required(VERSION 3.0)
project(demo2)
find_package( OpenCV REQUIRED )

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")

set(SOURCE_FILES demo2.cpp)
add_executable(demo2 ${SOURCE_FILES})
target_link_libraries( demo2  ${ALL_LIB_RAF} ${OpenCV_LIBS} )

编译&执行:

cmake .
make
./demo2

这样就可以使用宿主的摄像头了。

5,总结

本文的原文连接是: http://blog.csdn.net/freewebsys/article/details/48379799 未经博主允许不得转载。
博主地址是:http://blog.csdn.net/freewebsys

使用Lubuntu开发openCV还是非常方便的。在ROS系统下openCV非常重要。只有机器人能够识别物体之后才能进行操作。

相关实践学习
使用ROS创建VPC和VSwitch
本场景主要介绍如何利用阿里云资源编排服务,定义资源编排模板,实现自动化创建阿里云专有网络和交换机。
阿里云资源编排ROS使用教程
资源编排(Resource Orchestration)是一种简单易用的云计算资源管理和自动化运维服务。用户通过模板描述多个云计算资源的依赖关系、配置等,并自动完成所有资源的创建和配置,以达到自动化部署、运维等目的。编排模板同时也是一种标准化的资源和应用交付方式,并且可以随时编辑修改,使基础设施即代码(Infrastructure as Code)成为可能。 产品详情:https://www.aliyun.com/product/ros/
目录
相关文章
|
弹性计算 数据安全/隐私保护 计算机视觉
|
2月前
|
算法 NoSQL 编译器
使用CLion进行ROS开发
1.安装基本的ROS环境   ROS环境的安装请参考安装ROS。 安装CLion 下载CLion   Linux的下载地址如下:CLion 解压CLion   将下载的CLion复制到/opt目录下(你可以解压到适合自己的文件夹,只要保证后续使用的路径一致即可),然后在这个目录下使用终端将其解压,命令如下所示(其中CLion-xxxx.xx.xx.tar.gx为下载的安装包名): sudo tar -zxvf CLion-xxxx.xx.xx.tar.gx 使用脚本安装CLion 运行解压后的文件夹中的clion.sh脚本,进行安装: 1.运行安装 2.登录激活可以选择教
|
5月前
|
机器学习/深度学习 算法 Ubuntu
十年OpenCV开发以后发布的作品 - OpenCV实验大师
十年OpenCV开发以后发布的作品 - OpenCV实验大师
53 2
|
5月前
|
Java API 开发工具
OpenCV On Android开发 - Android Studio上环境配置
OpenCV On Android开发 - Android Studio上环境配置
72 0
|
6月前
|
机器学习/深度学习 PyTorch TensorFlow
TensorFlow、PyTorch、Keras、Scikit-learn和ChatGPT。视觉开发软件工具 Halcon、VisionPro、LabView、OpenCV
TensorFlow、PyTorch、Keras、Scikit-learn和ChatGPT。视觉开发软件工具 Halcon、VisionPro、LabView、OpenCV
109 1
|
弹性计算 数据安全/隐私保护 计算机视觉
|
传感器 机器人 C++
机器人操作系统ROS 编程开发--详细总结
最近工作涉及到自动驾驶的,需要学习ROS,学习中总结了一些知识点,分享给大家。 机器人操作系统ROS,是一种分布式处理框架(又名Nodes),ROS常用C++和python编程语言开发;(这里项目开发采用C++ 11版本)。ROS的点对点设计以及服务和节点管理器等机制,可以分散由计算机视觉和语音识别等功能带来的实时计算压力,能够适应多机器人遇到的挑战。ROS免费并且开源。
1388 0
|
弹性计算 数据安全/隐私保护 计算机视觉
|
C语言 C++ Python
【ROS 开发神器 Visual Studio Code 的安装和设置】
【ROS 开发神器 Visual Studio Code 的安装和设置】
962 0
【ROS 开发神器 Visual Studio Code 的安装和设置】
|
弹性计算 数据安全/隐私保护 计算机视觉

推荐镜像

更多
下一篇
无影云桌面