实验二的要求是编程实现RGB彩色空间到HSV彩色空间的转换,并通过调整H、S、V实现图像色度、色饱和度和亮度的调节。在开始实验二之前,我们先来学习一下关于QSlider滑块的操作。

最后要实现的效果如下:用3个滑动条分别来调节RGB三个颜色分量的大小,并显示到左侧各自的文本框中,将上面文本框的背景颜色设置为RGB三个颜色分量的组合。

一、ui布局

设置3个滑块的mininum为0,maximum为255。

二、代码实现

.h文件:

#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
namespace Ui {class MainWindow;
}
class MainWindow : public QMainWindow
{Q_OBJECT
public:explicit MainWindow(QWidget *parent = nullptr);~MainWindow();
private slots:void on_horizontalSlider_valueChanged(int value);void on_horizontalSlider_2_valueChanged(int value);void on_horizontalSlider_3_valueChanged(int value);
private:Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H

.c文件:

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QString>MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow)
{ui->setupUi(this);QString r = QString::number(ui->horizontalSlider->value());QString g = QString::number(ui->horizontalSlider_2->value());QString b = QString::number(ui->horizontalSlider_3->value());ui->textEdit->setText(r);ui->textEdit_2->setText(g);ui->textEdit_3->setText(b);QString style = "background-color: rgb("+ r +","+ g +","+ b +");";ui->textBrowser->setStyleSheet(style);
}MainWindow::~MainWindow()
{delete ui;
}void MainWindow::on_horizontalSlider_valueChanged(int value)
{QString r = QString::number(ui->horizontalSlider->value());QString g = QString::number(ui->horizontalSlider_2->value());QString b = QString::number(ui->horizontalSlider_3->value());ui->textEdit->setText(r);ui->textEdit_2->setText(g);ui->textEdit_3->setText(b);QString style = "background-color: rgb("+ r +","+ g +","+ b +");";ui->textBrowser->setStyleSheet(style);
}void MainWindow::on_horizontalSlider_2_valueChanged(int value)
{QString r = QString::number(ui->horizontalSlider->value());QString g = QString::number(ui->horizontalSlider_2->value());QString b = QString::number(ui->horizontalSlider_3->value());ui->textEdit->setText(r);ui->textEdit_2->setText(g);ui->textEdit_3->setText(b);QString style = "background-color: rgb("+ r +","+ g +","+ b +");";ui->textBrowser->setStyleSheet(style);
}void MainWindow::on_horizontalSlider_3_valueChanged(int value)
{QString r = QString::number(ui->horizontalSlider->value());QString g = QString::number(ui->horizontalSlider_2->value());QString b = QString::number(ui->horizontalSlider_3->value());ui->textEdit->setText(r);ui->textEdit_2->setText(g);ui->textEdit_3->setText(b);QString style = "background-color: rgb("+ r +","+ g +","+ b +");";ui->textBrowser->setStyleSheet(style);
}

【QT数字图像处理】(三)QSlider滑块学习相关推荐

  1. 《数字图像处理 MATLAB版》学习笔记

    学习教材:<数字图像处理 MATLAB版>(第二版) 冈萨雷斯 学习过程中的图片代码和及我收集的一些关于数字图像处理的其他学习资料,需要的可以评论留下邮箱(需要购买专栏),加油 文章目录 ...

  2. 《数字图像处理 冈萨雷斯》绪论——学习笔记

    文章目录 什么是数字图像处理 使用数字图像处理领域的实例 伽马射线成像 X射线成像 紫外波段成像 可见光及红外波段成像 微波波段成像 无线电波段成像 使用其他成像方式的例子 数字图像处理的基本步骤 图 ...

  3. 【QT数字图像处理】(四)hsv颜色空间转rgb颜色空间

    一.颜色模型 1.1 rgb颜色模型 1.2 hsv颜色模型 hsv颜色模型具有以下优点: 1.符合人眼对颜色的感觉: 2.hsv颜色模型中hsv三个坐标是相互独立的:当采用rgb颜色模型时,改变某一 ...

  4. 计算机视觉、机器视觉、数字图像处理、机器学习/深度学习+图像处理 四者的关系

    一.机器能进行视觉感知的进化发展(就算机器能识别各种物体用处大吗) 小猫有眼睛,认识吃的就吃,看到危险就躲,还能抓苍蝇.那具有运动能力的机器没有视觉怎么做出决策和会执行.机器拿到数字图像如何提取感知信 ...

  5. 数字图像处理基础与应用学习,第二章

    计算灰度直方图和RGB三个通道的灰度直方图 Tips 1.计算灰度 cv2.calcHist(images, channels, mask, histSize, ranges[, hist[, acc ...

  6. 数字图像处理三 | 二值形态学操作(Distance Transform, 骨架提取,Conditional Dilation)的原理及Python实现

    图像处理总结3 文末有代码链接. 二值形态学 形态学起源于法国巴黎高等矿业学院,因为人家是搞地质的. 可见一斑,形态学的精要就是在于将图像看作是等高线组成的地形图,他的基本操作就是动土,平高填低等等. ...

  7. 数字图像处理三:图像增强

    (1)直方图均衡化处理:给定一幅图片,作出均衡化后的直方图,并将原图和均衡化后的图片进行对比.直方图均衡化是图像增强的重要手段,把输入图像的直方图进行均衡化处理后,可以获得更加清晰的图像. %% 直方 ...

  8. 数字图像处理学习笔记之一 DIP绪论与MATLAB基础

    写在前面的话 数字图像处理系列的学习笔记是作者结合上海大学计算机学院<数字图像处理>课程的学习所做的笔记,使用参考书籍为<冈萨雷斯数字图像处理(第二版)(MATLAB版)>,同 ...

  9. 数字图像处理学习--导数运算与锐化空间滤波

    引言 本文内容是老猿学习冈萨雷斯<数字图像处理>后的学习总结和感悟,中文版在介绍本文内容时翻译存在比较多的问题,本文是对中文版的完善.补充以及学习感悟的总结.在学习过程中对一些细节进行了一 ...

最新文章

  1. Django:模型model和数据库mysql(一)
  2. 4种动态加载JS的方法
  3. CMake基础 第1节 初识CMake
  4. 【总结记录】面向对象设计OOP三大特性(封装、继承、多态)、七大基本原则的理解(结合代码、现实实例理解)
  5. 学霸情侣一起投身国防事业,爱情和优秀同时发生了…
  6. 《网络对抗》Exp5 MSF基础应用
  7. 大数据之-Hadoop3.x_Yarn_全流程作业---大数据之hadoop3.x工作笔记0143
  8. java 中的jframe_java中JFrame是什么
  9. 通过lua操作http请求头
  10. Java中如何在窗口加一行字,如何在java中实现读文件(一行一行地读)和写文件(一行一行地追加写)...
  11. php js attr,php如何像js一样解析DOM?
  12. kafka下载注意事项
  13. 微计算机原理与接口半期考试,最新南京邮电大学微型计算机原理与接口技术期末考试试卷...
  14. java实现电话的呼叫转移_「呼叫转移设置」呼叫转移流程分析(一) - seo实验室...
  15. 【字节跳动实习】后端日常实习的三次面试+hr面 面经
  16. lsdyna如何设置set中的node_list_如何画出一幅好看的图
  17. JTAG与SWD的接口连接关系简介
  18. 浏览器截图截取整个页面的方法
  19. 打车日记 - 光头师傅
  20. 微信小程序之基础指南

热门文章

  1. 为什么体适能一直显示服务器,一种体适能检测方法及系统
  2. Android 微信支付加密
  3. uboot环境变量setenv学习
  4. php时间相减_PHP 日期加减计算方法示例
  5. 网易视频云首推多路互动直播,引领直播新时代
  6. 【docker系列】docker API管理接口增加CA安全认证
  7. 区块链软件公司:区块链赚钱的领域有哪些
  8. casperjs ajax请求,CasperJs中的sendAJAX数据参数
  9. css style 命名,CSS_CSS样式命名规范,命名一直是个让我头痛的问题 - phpStudy
  10. 蓝桥杯 外卖店的优先级