qt5和opencv4.3.0实现打开摄像头并截屏拍照,再将灰度化,小说类源码直方化,边缘检测,怎么写?
代码如下,觉得有帮助可以采纳下,后面有我在vscode的源代码,可以对照输入测试#include <QApplication>
#include <QMainWindow>
#include <QPushButton>
#include <QVBoxLayout>
#include <QLabel>
#include <QPixmap>
#include <QTimer>
#include <opencv2/opencv.hpp>
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr)
: QMainWindow(parent)
{
// 创建显示摄像头图像的标签
imageLabel = new QLabel(this);
imageLabel->setAlignment(Qt::AlignCenter);
// 创建按钮
QPushButton *captureButton = new QPushButton("拍照", this);
connect(captureButton, &QPushButton::clicked, this, &MainWindow::captureImage);
// 创建垂直布局并将标签和按钮添加到布局中
QVBoxLayout *layout = new QVBoxLayout;
layout->addWidget(imageLabel);
layout->addWidget(captureButton);
// 创建主窗口并设置布局
QWidget *centralWidget = new QWidget(this);
centralWidget->setLayout(layout);
setCentralWidget(centralWidget);
// 设置定时器,定时更新摄像头图像
QTimer *timer = new QTimer(this);
connect(timer,仓储网站源码 &QTimer::timeout, this, &MainWindow::updateImage);
timer->start(); // 每毫秒更新一次图像
}
private slots:
void updateImage()
{
// 打开摄像头
cv::VideoCapture cap(0);
if (!cap.isOpened())
{
qDebug() << "无法打开摄像头!";
return;
}
// 读取摄像头图像
cv::Mat frame;
cap.read(frame);
cap.release();
// 将OpenCV图像转换为Qt图像,并显示在标签上
QImage qImage(frame.data, frame.cols, frame.rows, frame.step, QImage::Format_BGR);
QPixmap pixmap = QPixmap::fromImage(qImage);
imageLabel->setPixmap(pixmap.scaled(imageLabel->size(), Qt::KeepAspectRatio));
}
void captureImage()
{
// 获取当前摄像头图像
cv::VideoCapture cap(0);
if (!cap.isOpened())
{
qDebug() << "无法打开摄像头!";
return;
}
cv::Mat frame;
cap.read(frame);
cap.release();
// 转换为灰度图像
cv::cvtColor(frame,cow指标源码 frame, cv::COLOR_BGR2GRAY);
// 直方化
cv::equalizeHist(frame, frame);
// 边缘检测
cv::Canny(frame, frame, , );
// 保存图像
cv::imwrite("captured_image.jpg", frame);
qDebug() << "已保存为 captured_image.jpg";
}
private:
QLabel *imageLabel;
};
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
#include "main.moc"
在ubuntu下怎么安装QT4
运行:
一、$ sudo apt-get install libqt4-dev libqt4-debug libqt4-gui
libqt4-sql qt4-dev-tools qt4-doc qt4-designer qt4-qtconfig
qt4-dev-tools
包含了Qt Assistant及Qt Linguist等工具,不需要单独安装这两个工具。其它的思科华为源码,qt4-doc
是帮助文档,包含了Qt中各个类库的详细说明以及丰富的例子程序,使用Qt Assistant
工具开阅读。qt4-qtconfig 是配置Qt环境的对话框,qt4-demos
包含很多可以运行的可执行文件以及源代码。qt4-designer是用来设计GUI界面的设计器
二、$ sudo apt-get install libqt4-debug 在安装这个软件的时候系统提示:
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息...
完成
三、编写源代码。 新建文件夹qt4hello,然后再里面新建文件 Qthello.cpp,内容如下:
#include <QApplication>
#include <QPushButton>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QPushButton hello("Hello Ubuntu!");
hello.resize(, );
hello.show();
return app.exec();
}
在终端输入:$ gedit Qthello.cpp(输入上面的程序)
$qmake -project(生成Qt项目)
$qmake(生成makefile文件)
$make
出现g++ -c -pipe -g -Wall -W -D_REENTRANT -DQT_GUI_LIB -DQT_CORE_LIB
-I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore
-I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui
-I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -I. -o
QtHello.o QtHello.cpp
g++ -o qtsrc QtHello.o -L/usr/lib -lQtGui -lQtCore -lpthread
最后
$ ls
Makefile qt4hello
qt4hello.pro Qthello.cpp
Qthello.o
结着
$ ./qt4hello 在屏幕上显示一个hello的小窗口安装完毕
2024-11-23 11:54
2024-11-23 11:24
2024-11-23 10:46
2024-11-23 09:45
2024-11-23 09:22