VS+Qt+C++探测设备相片图像编辑

程序示例精选
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

  • 21
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

荷塘月色2

您的鼓励将是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值