這篇博客就是在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();
}