程序示例精选
VS+Qt+C++探测设备相片图像编辑
如需安装运行环境或远程调试,见文章底部个人QQ名片,由专业技术人员远程协助!
前言
这篇博客针对《VS+Qt+C++探测设备相片图像编辑》编写代码,代码整洁,规则,易读。 学习与应用推荐首选。
文章目录
一、所需工具软件
二、使用步骤
1. 主要代码
2. 运行结果
三、在线协助
一、所需工具软件
1. VS2019,Qt
2. C++
二、使用步骤
代码如下(示例):
MainWindow::MainWindow(QWidget* parent)
: QMainWindow(parent)
{
ui.setupUi(this);
styleInit();
scale_factor = 1.0;
ui.graphicsView->setTransformationAnchor(QGraphicsView::AnchorUnderMouse);
ui.graphicsView->viewport()->installEventFilter(this);
float scale_factor = 1.0;
QObject::connect(ui.horizontalSlider, &QSlider::valueChanged, ui.lcdNumber, QOverload<int>::of(&QLCDNumber::display));
QObject::connect(ui.horizontalSlider_2, &QSlider::valueChanged, ui.lcdNumber_2, QOverload<int>::of(&QLCDNumber::display));
QObject::connect(ui.horizontalSlider_3, &QSlider::valueChanged, ui.lcdNumber_3, QOverload<int>::of(&QLCDNumber::display));
QObject::connect(ui.horizontalSlider_4, &QSlider::valueChanged, ui.lcdNumber_4, QOverload<int>::of(&QLCDNumber::display));
QObject::connect(ui.horizontalSlider, &QSlider::valueChanged, [&](int value) {
sliderValue1 = value;
qDebug() << "Slider 1 value: " << sliderValue1;
int value2 = ui.horizontalSlider_2->value();
int value3 = ui.horizontalSlider_3->value();
int value4 = ui.horizontalSlider_4->value();
cv::Mat imageT = image.clone();
cv::line(imageT, cv::Point(0, sliderValue1), cv::Point(image.cols, sliderValue1), cv::Scalar(0, 0, 255), 2);
cv::line(imageT, cv::Point(0, value2), cv::Point(imageT.cols, value2), cv::Scalar(255, 0, 0), 2);
cv::line(imageT, cv::Point(value3, 0), cv::Point(value3, imageT.rows), cv::Scalar(0, 255, 0), 2);
cv::line(imageT, cv::Point(value4, 0), cv::Point(value4, imageT.rows), cv::Scalar(255, 255, 0), 2);
int height = imageT.rows;
int width = imageT.cols;
int rheight = height;
int rwidth = width;
cv::Mat frame;
cv::resize(imageT, frame, cv::Size(rwidth, rheight));
cv::cvtColor(frame, frame, cv::COLOR_BGR2RGB);
QImage qImage(frame.data, frame.cols, frame.rows, frame.step, QImage::Format_RGB888);
QGraphicsScene* scene = new QGraphicsScene;
QPixmap pixmap = QPixmap::fromImage(qImage);
QGraphicsPixmapItem* pixmapItem = scene->addPixmap(pixmap);
scene->setSceneRect(pixmap.rect());
ui.graphicsView->setScene(scene);
});
QObject::connect(ui.horizontalSlider_2, &QSlider::valueChanged, [&](int value) {
sliderValue2 = value;
qDebug() << "Slider 2 value: " << sliderValue2;
int value1 = ui.horizontalSlider->value();
int value3 = ui.horizontalSlider_3->value();
int value4 = ui.horizontalSlider_4->value();
cv::Mat imageT = image.clone();
cv::line(imageT, cv::Point(0, value1), cv::Point(imageT.cols, value1), cv::Scalar(255, 0, 0), 2);
cv::line(imageT, cv::Point(0, sliderValue2), cv::Point(image.cols, sliderValue2), cv::Scalar(0, 0, 255), 2);
cv::line(imageT, cv::Point(value3, 0), cv::Point(value3, imageT.rows), cv::Scalar(0, 255, 0), 2);
cv::line(imageT, cv::Point(value4, 0), cv::Point(value4, imageT.rows), cv::Scalar(255, 255, 0), 2);
int height = imageT.rows;
int width = imageT.cols;
int rheight = height;
int rwidth = width;
cv::Mat frame;
cv::resize(imageT, frame, cv::Size(rwidth, rheight));
cv::cvtColor(frame, frame, cv::COLOR_BGR2RGB);
QImage qImage(frame.data, frame.cols, frame.rows, frame.step, QImage::Format_RGB888);
QGraphicsScene* scene = new QGraphicsScene;
QPixmap pixmap = QPixmap::fromImage(qImage);
QGraphicsPixmapItem* pixmapItem = scene->addPixmap(pixmap);
scene->setSceneRect(pixmap.rect());
ui.graphicsView->setScene(scene);
});
QObject::connect(ui.horizontalSlider_3, &QSlider::valueChanged, [&](int value) {
sliderValue3 = value;
qDebug() << "Slider 3 value: " << sliderValue3;
int value1 = ui.horizontalSlider->value();
int value2 = ui.horizontalSlider_2->value();
int value4 = ui.horizontalSlider_4->value();
cv::Mat imageT = image.clone();
cv::line(imageT, cv::Point(0, value1), cv::Point(imageT.cols, value1), cv::Scalar(255, 0, 0), 2);
cv::line(imageT, cv::Point(0, value2), cv::Point(imageT.cols, value2), cv::Scalar(255, 0, 0), 2);
cv::line(imageT, cv::Point(sliderValue3, 0), cv::Point(sliderValue3, imageT.rows), cv::Scalar(0, 255, 0), 2);
cv::line(imageT, cv::Point(value4, 0), cv::Point(value4, imageT.rows), cv::Scalar(255, 255, 0), 2);
int height = imageT.rows;
int width = imageT.cols;
int rheight = height;
int rwidth = width;
cv::Mat frame;
cv::resize(imageT, frame, cv::Size(rwidth, rheight));
cv::cvtColor(frame, frame, cv::COLOR_BGR2RGB);
QImage qImage(frame.data, frame.cols, frame.rows, frame.step, QImage::Format_RGB888);
QGraphicsScene* scene = new QGraphicsScene;
QPixmap pixmap = QPixmap::fromImage(qImage);
QGraphicsPixmapItem* pixmapItem = scene->addPixmap(pixmap);
scene->setSceneRect(pixmap.rect());
ui.graphicsView->setScene(scene);
});
QObject::connect(ui.horizontalSlider_4, &QSlider::valueChanged, [&](int value) {
sliderValue4 = value;
qDebug() << "Slider 4 value: " << sliderValue4;
int value1 = ui.horizontalSlider->value();
int value2 = ui.horizontalSlider_2->value();
int value3 = ui.horizontalSlider_3->value();
cv::Mat imageT = image.clone();
cv::line(imageT, cv::Point(0, value1), cv::Point(imageT.cols, value1), cv::Scalar(255, 0, 0), 2);
cv::line(imageT, cv::Point(0, value2), cv::Point(imageT.cols, value2), cv::Scalar(255, 0, 0), 2);
cv::line(imageT, cv::Point(value3, 0), cv::Point(value3, imageT.rows), cv::Scalar(0, 255, 0), 2);
cv::line(imageT, cv::Point(sliderValue4, 0), cv::Point(sliderValue4, imageT.rows), cv::Scalar(255, 255, 0), 2);
int height = imageT.rows;
int width = imageT.cols;
int rheight = height;
int rwidth = width;
cv::Mat frame;
cv::resize(imageT, frame, cv::Size(rwidth, rheight));
cv::cvtColor(frame, frame, cv::COLOR_BGR2RGB);
QImage qImage(frame.data, frame.cols, frame.rows, frame.step, QImage::Format_RGB888);
QGraphicsScene* scene = new QGraphicsScene;
QPixmap pixmap = QPixmap::fromImage(qImage);
QGraphicsPixmapItem* pixmapItem = scene->addPixmap(pixmap);
scene->setSceneRect(pixmap.rect());
ui.graphicsView->setScene(scene);
});
}
运行结果
三、在线协助:
如需安装运行环境或远程调试,见文章底部个人 QQ 名片,由专业技术人员远程协助!
1)远程安装运行环境,代码调试
2)Visual Studio, Qt, C++, Python编程语言入门指导
3)界面美化
4)软件制作
5)云服务器申请
6)网站制作
当前文章连接:https://blog.csdn.net/alicema1111/article/details/132666851
个人博客主页:https://blog.csdn.net/alicema1111?type=blog
博主所有文章点这里:https://blog.csdn.net/alicema1111?type=blog
博主推荐:
Python人脸识别考勤打卡系统:
https://blog.csdn.net/alicema1111/article/details/133434445
Python果树水果识别:https://blog.csdn.net/alicema1111/article/details/130862842
Python+Yolov8+Deepsort入口人流量统计:https://blog.csdn.net/alicema1111/article/details/130454430
Python+Qt人脸识别门禁管理系统:https://blog.csdn.net/alicema1111/article/details/130353433
Python+Qt指纹录入识别考勤系统:https://blog.csdn.net/alicema1111/article/details/129338432
Python Yolov5火焰烟雾识别源码分享:https://blog.csdn.net/alicema1111/article/details/128420453
Python+Yolov8路面桥梁墙体裂缝识别:https://blog.csdn.net/alicema1111/article/details/133434445
Python+Yolov5道路障碍物识别:https://blog.csdn.net/alicema1111/article/details/129589741
Python+Yolov5跌倒检测 摔倒检测 人物目标行为 人体特征识别:https://blog.csdn.net/alicema1111/article/details/129272048