Qt5.14 与 OpenCV4.5 教程之图片增强效果

文章参考《Qt5开发及实例(第4版)》陆文周 主编

一、建立Qt工程

1、选择类别

2、建立项目名称

3、选择Qt基类及修改名称

4、选择编译器(这边两个都选择,生成两个Debug文件)

5、选择运行环境,生成文件夹

生成的项目文件夹

6、将预先编译好的OpenCV4.5下路径F:\OpenCV4.5.0\opencv\buildmingw\install\x64\mingw\bin下所有文件复制到Qt 上面两个文件夹内

7、在项目的.pro文件中添加语句

INCLUDEPATH += F:\OpenCV4.5.0\opencv\buildmingw\install\include
CONFIG(debug, debug|release): {
LIBS += F:\OpenCV4.5.0\opencv\buildmingw\install\x64\mingw\bin\libopencv_*d.dll
} else:CONFIG(release, debug|release): {
LIBS += -LF:\OpenCV4.5.0\opencv\buildmingw\install\x64\mingw\bin\
    -llibopencv_core450 \
    -llibopencv_highgui450 \
    -llibopencv_imgcodecs450 \
    -llibopencv_imgproc450 \
    -llibopencv_features2d450 \
-llibopencv_calib3d450
}

完成项目配置

二、界面设计

1、界面及属性设置

属性设置

序号

名称

类型

属性设置

viewLabel

QLabel

frameShape:Box
frameShadow:Sunken

contrastVerticalSlider

QSlider

maximum:100
value:33
tickPostion:TicksBelow

brightnessVerticalSlider

QSlider

maximum:100

contrastLabel

QLabel

text:对比度

brightLabel

QLabel

text:亮度

2、在头文件中声明变量及设置公有函数,并生成对应定义函数

3、完成各公有函数功能代码

/**********************界面初始化**************************/
void PictureEnhance::initMainWindow()
{
    QString     imgPath = "D:\\Qt\\QtOpencvEnhance\\lena.jpg"; //本地路径(图片直接放在项目目录下)
    Mat         imgData = imread(imgPath.toLatin1().data());   //读取图片数据

    cvtColor(imgData,imgData, COLOR_BGR2RGB);                  //图片格式转换

    myImg               = imgData;

    myQImg  = QImage((const unsigned char*)(imgData.data), imgData.cols, imgData.rows, QImage::Format_RGB888);

    imgShow();
}

/**********************处理图片*****************************/
void PictureEnhance::imgProc(float con, int bri)
{
    Mat     imgSrc = myImg;
    Mat     imgDst = Mat::zeros(imgSrc.size(),imgSrc.type());  //初始生成空的零像素阵列
    imgSrc.convertTo(imgDst,-1,con,bri);
    myQImg = QImage((const unsigned char*)(imgDst.data), imgDst.cols,imgDst.rows, QImage::Format_RGB888);
    imgShow();
}

/**********************显示图片******************************/
void PictureEnhance::imgShow()
{
    ui->ViewLabel->setPixmap(QPixmap::fromImage(myQImg.scaled(ui->ViewLabel->size(),Qt::KeepAspectRatio)));
    ui->ViewLabel->setScaledContents(true);
}

4、滑动条实现功能

转到uil设置界面,右键对比度滑动条,转到槽

完成槽函数

/***********************对比度滑动条拖动槽*********************************/
void PictureEnhance::on_contrastVerticalSlider_sliderMoved(int position)
{
    imgProc(position / 33.3,0);
}

/***********************对比度滑动条值改变槽***************************/
void PictureEnhance::on_contrastVerticalSlider_valueChanged(int value)
{
    imgProc(value / 33.3,0);
}

/****************************亮度滑动条拖动槽*****************************/
void PictureEnhance::on_brightnessVerticalSlider_sliderMoved(int position)
{
    imgProc(1.0,position);
}

/**************************亮度滑动条值改变槽************************/
void PictureEnhance::on_brightnessVerticalSlider_valueChanged(int value)
{
    imgProc(1.0,value);
}

运行效果:

到此这篇关于Qt5.14 与 OpenCV4.5 教程之图片增强的文章就介绍到这了,更多相关Qt5.14 与 OpenCV4.5图片增强内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • opencv+pyQt5实现图片阈值编辑器/寻色块阈值利器

    定位色块常用到hsv色彩空间下的颜色阈值,笔者曾经用openmv时,其IDE有自带一个阈值编辑器,使用起来非常方便,现在在linux上跑cv算法,需要类似的功能,因此自己写了一个阈值编辑器. 目前暂时只支持HSV色彩空间下的阈值编辑. 代码: mian.py: from threshold_ui import Ui_Widget from PyQt5.QtWidgets import QApplication from PyQt5.QtGui import QImage,QPixmap,QFon

  • VS2017+Qt5+Opencv3.4调用摄像头拍照并存储

    1. Qt的ui界面,找着画就好 2.头文件直接贴出,之后有时间慢慢解释吧 #pragma once #include <QtWidgets/QWidget> #include "ui_camaraGet.h" #ifndef CAMARAGET_H #define CAMARAGET_H #include <opencv2\core\core.hpp> #include <QWidget> #include <QImage> #incl

  • Vs2019+Qt+Opencv环境配置心得(图文)

    一.下载vs2019和qt (关于vs2019的配置方法不在赘述,上一篇已经讲解了,点击传送门) 1.下载vs2019,直接在官网点击下载即可,是免费的. 2. 下载qt,在官网站下载即可 关于vs和qt安装 vs2019安装到自定义的目录就行,根据个人需求选择需要的库,我选择的C++和python库 qt安装的话不需要太大改动,msvc2017或者2015选上就行,安装到自定义的目录一直下一步到安装完成. 二.将vs2019和qt添加到系统环境变量中 三.在vs2019中创建新项目并添加qt插

  • Qt5.14 与 OpenCV4.5 教程之图片增强效果

    文章参考<Qt5开发及实例(第4版)>陆文周 主编 一.建立Qt工程 1.选择类别 2.建立项目名称 3.选择Qt基类及修改名称 4.选择编译器(这边两个都选择,生成两个Debug文件) 5.选择运行环境,生成文件夹 生成的项目文件夹 6.将预先编译好的OpenCV4.5下路径F:\OpenCV4.5.0\opencv\buildmingw\install\x64\mingw\bin下所有文件复制到Qt 上面两个文件夹内 7.在项目的.pro文件中添加语句 INCLUDEPATH += F:\

  • C++之Qt5双缓冲机制案例教程

    1. 双缓冲机制 所谓双缓冲机制,是指在绘制控件时,首先将要绘制的内容绘制在一个图片中,再将图片一次性地绘制到控件上. 在早期的Qt版本中,若直接在控件上进行绘制工作,则在控件重绘时会产生闪烁的现象,控件重绘频繁时,闪烁尤为明显. 双缓冲机制可以有效地消除这种闪烁现象.自Qt 5版本之后,QWidget 控件已经能够自动处理闪烁的问题. 因此,在控件上直接绘图时,不用再操心显示的闪烁问题,但双缓冲机制在很多场合仍然有其用武之地.当所需绘制的内容较复杂并需要频繁刷新,或者每次只需要刷新整个控件的一

  • MySQL5.7.14下载安装图文教程及MySQL数据库语句入门大全

    如何下载: 我先去MySQL首页下载最新版本的MySQL-链接:https://www.mysql.com/downloads/ 进入此界面下载: Downloads–>MySQL Community Edition (GPL)(这是免费版的,当然,有钱的可以用收费的,功能更强大)–>MySQL Community Server (GPL) –>选择对应的系统和电脑版本(在这里,我选择的是Window系统64位的下载) –>No thanks, just start my down

  • Qt5.14.2使用虚拟键盘的关键代码

    目录 说明 关键代码 处理视图推拉 独立运行 说明 这是关于Qt5(Qt5.1.4.2),QWidget编程使用Qt虚拟键盘(qtvirtualkeyboard)Tag: QT5,Qt,软件盘.虚拟键盘,Widget程序,QML 作者:474609810@qq.com 关键代码 启用虚拟键盘模块在QApplication对象创建之前插入代码: qputenv("QT_IM_MODULE", QByteArray("qtvirtualkeyboard")); 有这句话

  • mysql 5.7.14 安装配置简单教程

    记录mysql5.7.14安装与配置过程,梳理成文,希望对大家有所帮助. 1.配置文档:  ####################配置文件开始################### # For advice on how to change settings please see # http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html # *** DO NOT EDIT THIS FILE. It'

  • mysql 5.7.14 安装配置图文教程

    小编需要需要在本机安装Mysql,先将安装过程记录如下,希望对他人有所参考. 一.下载软件 1. 进入mysql官网,登陆自己的oracle账号,下载Mysql-5.7.14,下载地址:http://dev.mysql.com/downloads/mysql/ 2.将下载好的文件解压到指定目录,小编将文件解压在C:\Users\Administrator\Desktop\mysql-v5.7.14 二.图解安装过程 1.进入安装界面 2.勾选"我接受--",然后下一步 3.选择类型 4

  • Android学习教程之图片毛玻璃效果(4)

    本教程为大家分享了Android毛玻璃效果的具体代码,供大家参考,具体内容如下 BlurimageActivity.java代码: package com.siso.crazyworld; import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.support.v7.app.AppCompatActivit

  • p5.js入门教程之图片加载

    一.preload()函数与图片上传 preload()函数是一个特殊的函数,它同setup()类似,只在程序开始时运行一次,但顺序在setup()之前. 一般我们会将媒体文件(图片.声音)加载的语句放在preload()中,因为preload()有一个特性就是不加载完毕,程序就不会开始,保证了程序运行时不会出错. 在加载图片之前,我们需要先将图片文件上传. 方法是: ①点击编辑器左上角的小三角展开文件目录. ②点击文件目录右上角小三角,展开菜单后Add File. ③可以直接将图片文件拖到框里

  • CentOS8.2安装Java 14.0.2的教程详解

    Java是一种安全,稳定且广为人知的通用编程语言和计算技术平台,具有许多相互关联的功能. 要运行基于Java的应用程序,必须在服务器上安装Java.您通常需要Java Runtime Environment(JRE),这是用于在Linux机器上运行Java应用程序的软件组件的集合. 如果要开发Java的软件应用程序,则需要安装Oracle Java开发工具包(JDK),该工具包带有一个完整的JRE软件包,其中包含用于开发,调试和监视Java应用程序的工具,它是Oracle支持的Java SE(标

  • php初学者教程之图片缩放和裁剪

    php程序中改变图片大小的函数大多数人都想到用imagecopyresized(),不过经过测试比较发现,使用imagecopyresampled()改变的图片质量更高. 1.imagecopyresampled的使用 1.目标函数资源 2.源图像资源<要采样的图片资源> 3.x(0,0指图左上角) 4.y(x,y确定一个坐标,坐标确定了把采样的部分放到目标图像资源的位置) 5.源x(0,0指图右上角) 6.源y(源x与源y确定一个坐标,你要采用的原图像资源的某个部分的起始位置) 7.w 8.

随机推荐