【树莓派Qt +opencv c++使用1】

树莓派Qt +opencv c++使用1

一、 更换微雪课堂系统后,换源,然后查看opencv的路径

1.include

/usr/local/include/opencv4/opencv2

【树莓派Qt +opencv c++使用1】_第1张图片
2.lib路径

/usr/local/lib

【树莓派Qt +opencv c++使用1】_第2张图片

二、测试摄像头

https://blog.csdn.net/ganhui13000/article/details/131973721?spm=1001.2014.3001.5501

1. 安装好树莓派SCI摄像头

1.1 将CSI摄像头 设置为一个视频设备,开启vV4L2模式

sudo nano /etc/modules

添加:

bcm2835-v4l2

ctrl+s
ctrl+x
保存退出
【树莓派Qt +opencv c++使用1】_第3张图片
1.2 看出摄像头video0则是SCI摄像头

ls -ltrh /dev/video*

【树莓派Qt +opencv c++使用1】_第4张图片

安装Qt

可以参考微雪课程
链接: link

安装Qt5和qtcreator

安装qt5

sudo apt-get install qt5-default

安装qtcreator

sudo apt-get install qtcreator

安装完成后
【树莓派Qt +opencv c++使用1】_第5张图片

新建工程

test1.pro

INCLUDEPATH += /usr/local/include/opencv4
INCLUDEPATH += /usr/local/include/opencv4/opencv2
LIBS +=/usr/local/lib/libopencv_highgui.so\
/usr/local/lib/libopencv_core.so\
/usr/local/lib/libopencv_imgproc.so\
/usr/local/lib/libopencv_videoio.so\
/usr/local/lib/libopencv_imgcodecs.so

#include "widget.h"
#include "ui_widget.h"

#include 
#include 
#include 
#include 
#include 
#include 
using namespace cv;

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
}

Widget::~Widget()
{
    delete ui;
}

void Widget::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();
     //    Mat src = imread("\\home\\pi\\fot.jpg");
         //    Mat src = imread("C:\\Users\\32498\\Pictures\\R-C(2).jpg");
         // /home/pi
     //   namedWindow("测试图", WINDOW_NORMAL);
     //   imshow("测试图", src);
        waitKey(0);
}

【树莓派Qt +opencv c++使用1】_第6张图片

Qt 运行错误

【树莓派Qt +opencv c++使用1】_第7张图片
【树莓派Qt +opencv c++使用1】_第8张图片
修改前:
【树莓派Qt +opencv c++使用1】_第9张图片
修改后:
【树莓派Qt +opencv c++使用1】_第10张图片

运行结果

【树莓派Qt +opencv c++使用1】_第11张图片

你可能感兴趣的:(树莓派学习6,linux,嵌入式硬件,c++)