这篇博客就是在PI上直接写出来的!cheers!!python
PI3的性能已经很是强劲,而做为一个可以独立运行的运算单元,使用它来作图像处理,将是很是适合的。为了挖掘机器的最大潜能,我没有采用比较常见的python等方法,而是直接使用c++实现相关算法,同时使用QT实现GUI操做。这篇文章就是最基本的环境搭建。linux
1、QT的配置:c++
1:更新软件源算法
$ sudo apt-get update函数
2:替换旧的软件包性能
$ sudo apt-getupgradeui
3:执行树莓派固件升级:this
3.一、树莓派固件:能够理解为树莓派的BIOS,引导程序之类的,这一部分博通不开源,给树莓派增长新功能主要经过固件来实现。spa
3.二、Raspbian系统内核:也就是Linux内核,这部分是彻底开源的,用户能够本身下载源代码进行编译,或者经过rpi-update和固件一块儿升级3d
$ sudo rpi-update
升级完成以后,重启树莓派
4:安装qt5-default和 qtcreator:
安装qt5-default
$ sudo apt-get install qt5-default
安装qtcreator:
$ sudo apt-get install qtcreator
2、OpenCV的配置:
首次使用,直接使用了LibCV,为编译好的OpenCV类库
sudo apt-get install libcv-dev
sudo apt-get install libopencv-dev
安装完成以后,opencv相关的头文件被安装到/usr/include目录中,该目录是linux默认头文件查找路径。
opencv的相关动态连接库被安装到/usr/gnueabihf/lib目录中。
3、最为关键的配置文件(实际上只是写法不同,内容也是很好理解的)
INCLUDEPATH += /usr/include/opencv \
/usr/include/opencv2
LIBS += /usr/lib/gnueabihf/libopencv_highgui.so \
/usr/lib/gnueabihf/libopencv_core.so \
/usr/lib/gnueabihf/libopencv_imgproc.so
结果有图有真相哈!
在GUI环境下,也能够进行图像处理
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <QFileDialog>
using namespace cv;
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pushButton_clicked()
{
//第3个参数表示查找文件时从哪一个目录开始,若是为"."的话,表示从该工程目录开始查找,最后那个参数的过滤器的名字之间
//要用空格,不然识别不出来
QString img_name = QFileDialog::getOpenFileName( this, tr("Open Image"), ".",tr("Image Files(*.png *.jpg *.jpeg *.bmp)"));
//toAscii()返回8位描述的string,为QByteArray,data()表示返回QByteArray的指针,QByteArray为字节指针
//如今已改成toLatinl函数
Mat src = imread( img_name.toLatin1().data());
cvtColor( src, src, CV_BGR2RGB );
QImage img = QImage( (const unsigned char*)(src.data), src.cols, src.rows, QImage::Format_RGB888 );
ui->label->setPixmap( QPixmap::fromImage(img) );
img_name.clear();
}