这篇博客就是在PI上直接写出来的!cheers!!

PI3的性能已经非常强劲,而作为一个能够独立运行的运算单元,使用它来做图像处理,将是非常适合的。为了挖掘机器的最大潜能,我没有采用比较常见的python等方法,而是直接使用c++实现相关算法,同时使用QT实现GUI操作。这篇文章就是最基本的环境搭建。

一、QT的配置:

1:更新软件源

$ sudo apt-get update

2:替换旧的软件包

$ sudo apt-getupgrade

3:执行树莓派固件升级:

3.1、树莓派固件:可以理解为树莓派的BIOS,引导程序之类的,这一部分博通不开源,给树莓派增加新功能主要通过固件来实现。

3.2、Raspbian系统内核:也就是Linux内核,这部分是完全开源的,用户可以自己下载源代码进行编译,或者通过rpi-update和固件一起升级

$ sudo rpi-update

升级完成之后,重启树莓派

4安装qt5-default和 qtcreator

安装qt5-default

$ sudo apt-get install qt5-default

安装qtcreator:

$ sudo apt-get install qtcreator

二、OpenCV的配置:

首次使用,直接使用了LibCV,为编译好的OpenCV类库

sudo apt-get install libcv-dev

sudo apt-get install libopencv-dev

安装完成之后,opencv相关的头文件被安装到/usr/include目录中,该目录是linux默认头文件查找路径。

opencv的相关动态链接库被安装到/usr/gnueabihf/lib目录中。

三、最为关键的配置文件(实际上只是写法不一样,内容也是很好理解的)

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();

}

基于PI+QT实现OpenCV图像处理操作(基本环境搭建)的更多相关文章

  1. (win10 64位系统中)Visual Studio 2015+OpenCV 3.3.0环境搭建,100%成功

    (win10 64位系统中)Visual Studio 2015+OpenCV 3.3.0环境搭建,100%成功 1.下载opencv 官网http://opencv.org/下载windows版Op ...

  2. 基于Axis1.4的webservice接口开发(环境搭建)

    基于Axis1.4的webservice接口开发(环境搭建) 一.环境搭建: 1.搜索关键字“Axis1.4”下载Axis1.4相关的jar包. 下载地址:http://download.csdn.n ...

  3. 基于Maven的Spring + Spring MVC + Mybatis的环境搭建

    基于Maven的Spring + Spring MVC + Mybatis的环境搭建项目开发,先将环境先搭建起来.上次做了一个Spring + Spring MVC + Mybatis + Log4J ...

  4. windows10 vs2019 + opencv 3.4.7环境搭建

    windows vs2019 + opencv 3.4.7环境搭建 安装Opencv 3.4.7 下载 Opencv 第1步 进入 opencv releases 页面,点击 "Window ...

  5. ubuntu基于VSCode的C++编程语言的构建调试环境搭建指南

    ubuntu基于VSCode的C++编程语言的构建调试环境搭建指南 首先安装g++ sudo apt install g++ 检查是否安装成功: 在插件栏安装插件c/c++.code runner: ...

  6. 基于Visual c++ 2012的php扩展开发 - 环境搭建

    软件准备 Apache2.4 php-5.6.20-Win32-VC11-x86 php-5.6.20-src mysql-5.5.45-win32 vcredist_x86.exe vs2012旗舰 ...

  7. OpenCV 3.4.2 环境搭建(适用于Ubuntu 一键安装)

    前面的话 最近决定要好好地学习一下OpenCV,Ubuntu系统上简单地搭建了OpenCV环境,(Windows的搭建方法移步到window10的搭建方法),千里之行始于足下,不积跬步无以至千里,在这 ...

  8. 基于AM3352/AM3354/AM3358/AM3359的Linux 开发环境搭建(上)

    遇到不少人新手小白问,前辈如何搭建一个优良的Linux 开发环境?之前一直都是在用win开发,现在想要尝试用Linux做开发等等一系列的问题.开源一直是给电子行业工作者提供了一种向技术更深处进发的机遇 ...

  9. 基于node/mongo的App Docker化测试环境搭建

    搭建步骤: 1.宿主机环境  ubuntu 14.4宿主机环境(云主机): 安装wget与curl(sudo apt-get install wget curl)2.安装Docker (wget -q ...

随机推荐

  1. [原创]WB Android客户端架构总结:发WB工作队列设计

    先简单说下需求,发一条WB包含多种类型,例如图片.视频.文字等,发送工作不能阻塞UI,工作队列易于扩展,方便优化. 几个重要的类: JobManager:统一管理Job列表,包括job的添加.启动.终 ...

  2. Node bak

    process.on('uncaughtException', function (err) { logger.info('Local Server Exception: ') logger.info ...

  3. pandas pivot_table或者groupby实现sql 中的count distinct 功能

    pandas pivot_table或者groupby实现sql 中的count distinct 功能 import pandas as pd import numpy as np data = p ...

  4. Codeforces Round #498 (Div. 3)

    被虐惨了,实验室里数十位大佬中的一位闲来无事切题(二,然后出了5t,当然我要是状态正常也能出5,主要是又热又有蚊子什么的... 题都挺水的.包括F题. A: 略 B: 找k个最大的数存一下下标然后找段 ...

  5. Nest.js 管道

    Docs: https://docs.nestjs.com/pipes 管道将输入数据转换为所需的输出.此外,它可以处理验证,当数据不正确时可能会抛出异常. 内置的 pipe import { Arg ...

  6. c++ __declspec

    dllimport 和dllexport 用__declspec(dllexport),__declspec(dllimport)显式的定义dll接口给调用它的exe或dll文件,用 dllexpor ...

  7. html 中a标签的问题(无反应,跳转,调用方法)

    让超链接点击后不跳转,可以用href = "#",但是这个#就会锚点到页面最上边     点击链接后不跳转可以设置成     1.<a href="javascri ...

  8. java八大数据类型

    基本数据类型以值传递的方式进行传递,String以值传递的方式传递,其他的以地址的方式进行传递 分别是:byte  short  int  long  float  double char boole ...

  9. [Python] Print input and output in table

    Print the input and output in a table using prettyTable. from prettytable import PrettyTable import ...

  10. SQLite multiple threads

    const int loops = 1000; public void DatabaseThreadSafetyTest() { var backgroundThread = new Thread(n ...