OpenCV2学习(1)——显示图像
来源:互联网 发布:南京栖霞网络问政 编辑:程序博客网 时间:2024/05/18 01:03
2017.04.22
编程环境:
- Linux Ubuntu 14.04
- OpenCV 3.2.0
- Qt 5.8.0
注:虽然是opencv3环境,但由于手头资料用的是OpenCV2,所以仍然是opencv2的编程风格,资料下载地址:
http://linux.linuxidc.com/index.php?folder=cHViLzIwMTEvMDgvMDQ=
main.cpp代码:
#include "highgui.h"using namespace cv;int main(int argc, char* argv[]){ //argc表示命令行的输入参数个数,argv[]表示参数数组,argv[0]指向程序本身,argv[1]指向第一个参数 //cvLoadImage(argv[1])从argc[1]指向的图片路径载入图片 IplImage* img = cvLoadImage(argv[1]); //cvNamdWindow()创建一个显示图片的窗口,窗口标题为"showImg",CV_WINDOW_AUTOSIZE表示窗口大小自适应图片大小 cvNamedWindow("showImg",CV_WINDOW_AUTOSIZE); //cvShowImage()表示在窗口"showImg"中显示图片 cvShowImage("showImg",img); //cvWaitKey(int delay=0)表示等待按键输入 cvWaitKey(0); //cvReleaseImage(&img)释放图片内存 cvReleaseImage(&img); //cvDestroyWindow("showImg")表示释放窗口内存 cvDestroyWindow("showImg");}
编译文件有两种方式:
1. 在文件目录下编写build.sh脚本
#!/bin/bashgcc main.cpp -o test_01_show_img `pkg-config --cflags --libs opencv`
上述脚本命令表示用gcc编译main.cpp,输出可执行文件test_01_show_img(可以自己命名),后面反引号表示将反引号中的命令结果作为参数传给之前的命令gcc,pkg-config --cflags --libs opencv
表示链接到opencv库
- 在终端下进入目录,执行:
sudo chmod u+x build.sh
//修改文件执行权限 - 终端下输入:
./build.sh
//通过脚本编译文件 - 终端下输入 :
./test_01_show_img ~/图片/00000.jpg
//执行程序,显示~/图片
目录下的00000.jpg
图片
2.cmake方式
- 将opencv的安装目录下
opencv-3.2.0/samples/cpp/example_cmake
的CMakeLists.txt文件copy到工程目录下cp CMakeLists.txt ~/MyDemo/Opencv/test_01_show_img
- 修改CMakeLists.txt:
project(opencv_example_project)
–>project(test_01_show_img)
add_executable(opencv_example example.cpp)
–>add_executable(test_01_show_img main.cpp)
target_link_libraries(opencv_example ${OpenCV_LIBS})
–>target_link_libraries(test_01_show_img ${OpenCV_LIBS})
- 在终端下进入到工程目录
cd ~/MyDemo/Opencv/test_01_show_img
- 执行:
cmake ./
//生成makefile文件 - 执行:
make
- 执行:
./test_01_show_img ~/图片/00000.jpg
Notice:
1. 如果是在Qt中创建工程,并希望在Qt环境里编译运行,那么需要在.pro文件中添加下列代码,INCLUDEPATH表示文件路径,LIBS表示所用库的链接文件,与windows系统下的.dll文件类似。
INCLUDEPATH += /usr/local/include \ /usr/local/include/opencv \ /usr/local/include/opencv2LIBS += /usr/local/lib/libopencv_highgui.so
2. cvWaitKey()函数的功能是使程序暂停,并等待用户出发按键操作。
- 参数默认值为0,如果参数是一个正数num,则程序将暂停一段时间,单位是num 毫秒。
- 如果参数是0或者负数,程序将一直等待用户触发按键操作。
- 返回值为按键的ASCII码,如ESC键返回值为27
因此可以使程序循环执行下列代码,当用户按键ESC时退出循环
while(!stop) { ...//循环执行的操作 char c = cvWaitkey(time); //暂停time ms if(c == 27) stop = true; ... }
0 0
- OpenCV2学习(1)——显示图像
- opencv2—(1)载入、显示及保存图像
- OpenCv2 学习笔记(2) Mat图像显示
- 学习OpenCV2——访问Mat图像的像素值
- 学习opencv(1)--VS2008下安装opencv2.4 配置 显示图像
- OpenCV2学习笔记---图像的基本读写显示
- opencv2.4.9学习_加载并显示一个图像
- OpenCV2 图像读取、显示、保存
- opencv2对读书笔记——操作图像1
- opencv2—(3)遍历图像
- Opencv2系列学习笔记1(图像的基本操作)
- Opencv2系列学习笔记1(图像的基本操作)
- Opencv学习之旅1—打开并显示图像
- opencv的学习——显示图像
- opencv2.3结合MFC显示图像
- Opencv2:1.5 载入、显示及保存图像
- Opencv2打开摄像头并显示图像
- opencv—图像显示1
- 零xml配置SpringMVC返回json数据
- 第一章安装OpenResty(Nginx+Lua)开发环境
- [时间序列分析][5]--非平稳时间序列模型与差分
- ZOJ 2224 Investment (完全背包)
- nginx启用ssl【nginx】
- OpenCV2学习(1)——显示图像
- Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.2:compile (default-compile)
- Python读写文件、对文件操作系统的操作
- Vuex学习笔记
- 数据结构OJ作业 二叉树
- mysql捕捉异常
- form表单中的input有哪些类型及其用途
- nginx启用Userdir【nginx】
- [牛客]交换练习题