树莓派2+OpenCV环境搭建
来源:互联网 发布:崔屹教授 知乎 编辑:程序博客网 时间:2024/05/22 12:15
一,环境搭建
1、安装所需的安装工具和包:
# sudo apt-get install build-essential cmake pkg-config
build-essential 和 pkg-config可能都已经安装。以防万一,我们还是将它们键入apt-get命令中。
2、安装必要的图像I/O包,这样才可以读入JPEG,PNG,TIFF等这些格式的图像。
# sudo apt-get install libjpeg8-dev libtiff4-dev libjasper-dev libpng12-dev
3、安装GTK开发库,这个库用来构建GUI。同时OpenCV中的highgui库也需要它来在屏幕上显示图像。
# sudo apt-get install libgtk2.0-dev
4、安装必要的视频I/O包,OpenCV需要它们来读入视频文件。
# sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
5、安装OpenCV优化操作时所需库。
# sudo apt-get install libatlas-base-dev gfortran
6、下载和解压OpenCV(如果已经下载好了,通过U盘传到树莓派,注意U盘是挂载在/media目录下)
# wget -O opencv-2.4.9.zip http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.4.9/opencv-2.4.9.zip/download# unzip opencv-2.4.9.zip# cd opencv-2.4.9
7、安装open
# sudo mkdir build# cd build# sudo cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_NEW_PYTHON_SUPPORT=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON ..
8、编译OpenCV
# sudo make# sudo make install
9、更新搜索动态链接库
#sudo ldconfig
二、测试
通过代码载入一张图片,通过opencv把彩色图片转换为黑白图片,并把原图和转换后的图片输出到屏幕中。
test.cpp
#include <opencv2/core/core.hpp>#include <opencv2/imgproc/imgproc.hpp>#include <opencv2/highgui/highgui.hpp>#include <iostream>using namespace std;using namespace cv;int main (int argc, char **argv){ Mat image, image_gray; if (argc != 2 || !image.data) { cout << "No image data\n"; return -1; } cvtColor(image, image_gray, CV_RGB2GRAY); namedWindow("image", CV_WINDOW_AUTOSIZE); namedWindow("image gray", CV_WINDOW_AUTOSIZE); imshow("image", image); imshow("image gray", image_gray); waitKey(0); return 0;}
makefile
INCLUDE = $(shell pkg-config --cflags opencv)LIBS = $(shell pkg-config --libs opencv)SOURCES = test.cpp# 目标文件OBJECTS = $(SOURCES:.cpp=.o)# 可执行文件TARGET = test$(TARGET):$(OBJECTS) g++ -o $(TARGET) $(OBJECTS) -I $(INCLUDE) $(LIBS)$(OBJECTS):$(SOURCES) g++ -c $(SOURCES)clean: rm $(OBJECTS) $(TARGET)# 编译规则 $@代表目标文件 $< 代表第一个依赖文件%.o:%.cpp g++ -I $(INCLUDE) -o $@ -c $<
编译并执行,载入一张名为lena.jpg图片,图片和可执行文件test应在同一个目录中,如下图所示
#sudo make#sudo ./test lena.jpg
运行过程中还出现了两个问题
问题一:
这是由于我在编写这个文件的时候,9行前面用的是4个空格符,而不是tab,所以造成了操作符丢失的错误。只需把缩进的空格delete掉,然后按tab键用tab代替4个空格,问题就可能解决。
问题二:
这是因为Xserver默认情况下不允许别的用户的图形程序的图形显示在当前屏幕上. 如果需要别的用户的图形显示在当前屏幕上, 则应以当前登陆的用户, 也就是切换身份前的用户执行如下命令。
#xhost +
通过执行这条命令,就授予了其它用户访问当前屏幕的权限,于是就可以以另外的用户运行需要运行的程序了,最简单的办法就是用root权限运行。
运行结果
参考资料:
http://blog.csdn.net/zx3517288/article/details/47335223
https://www.raspberrypi.org/forums/viewtopic.php?f=63&t=80601
http://docs.opencv.org/2.4/doc/tutorials/introduction/linux_install/linux_install.html
http://blog.csdn.net/xukai871105/article/details/40988101
http://tieba.baidu.com/p/3958907653
- 树莓派2+OpenCV环境搭建
- Opencv Linux环境搭建(2)
- AndroidStudio2.2上opencv开发环境搭建
- java+Opencv环境搭建
- android--OpenCV--环境搭建
- Opencv Linux环境搭建
- QT+opencv环境搭建
- QT 环境搭建+opencv
- python + opencv 环境搭建
- OpenCV学习-搭建环境
- openCV VS2012环境搭建
- python & opencv 环境搭建
- android opencv 环境搭建
- [Android] Opencv 环境搭建
- Opencv+vs2013环境搭建
- VS2013+OpenCV环境搭建
- OpenCV环境搭建
- OpenCV环境搭建
- c++ - 变量与基本类型(2)
- HDU1010弱智搜索
- MessageFormat用法
- Android中ListView的使用(一)----- 简单填充数据
- OpenGL学习笔记2:绘制和混合
- 树莓派2+OpenCV环境搭建
- JAVA中的format
- 字符串格式化符号含义及转义字符含义
- 软件测试必读的七本书
- JAVA字符串格式化-String.format()的使用
- lsd-slam源码解读第一篇:Sophus/sophus
- lua 读取lua文件
- CSAPP: Bomb Lab(2)
- 使用JMeter进行负载测试——终极指南