环境:Ubuntu12.04,完全安装桌面版本ROS(hydro版本)。
安装Opencv
$ sudo apt-get install ros-hydro-opencv2 ros-hydro-vision-opencv
安装后的opencv路径:
/opt/ros/hydro/include
编写DisplayImage.cpp文件,写入下面的代码
#include "opencv/cv.h"
#include "opencv/highgui.h"
int main( int argc, char** argv )
{
IplImage* img = cvLoadImage( argv[1] );//加载命令行所指的图片到内存
cvNamedWindow( "haha", CV_WINDOW_AUTOSIZE );//命名窗口
cvShowImage( "haha", img );//显示图像
cvWaitKey(0);//等待键盘输入
cvReleaseImage( &img );//释放内存
cvDestroyWindow( "haha");//摧毁窗口
}
程序分析:
IPlImage:是描述图像的结构体类型;
cvNamedWindow:创建一个窗口,第一个参数是窗口标题,第二个参数是窗口的属性,当设置为0时,窗口的大小时固定不变的,但是窗口的大小时可以随意缩放,当设置为CV_WINDOW_AUTOSIZE时,窗口则会则会根据图像的实际大小进行缩放;
cvShowImage:显示图像,第一个参数指定图像在哪个窗口进行显示,第二个参数制定要显示的图像的结构体;
cvWaitKey:等待键盘输入,参数为0代表,一直等待,直到有键盘输入则退出显示;
cvReleaseImage:释放内存;
cvDestroyWindow:摧毁窗口。
在源文件同一个目录下,新建一个CMakeList文件,写入:
project(DisplayImage)
find_package(OpenCV REQUIRED)
add_executable(DisplayImage DisplayImage)
target_link_libraries(DisplayImage ${OpenCV_LIBS})
cmake_minimum_required(VERSION 2.8)
然后生成可执行文件:
cmake .
make
运行程序:
./DisplayImage img.jpg