欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

QT Creator+OpenCV實現(xiàn)圖像灰度化的示例代碼

 更新時間:2022年12月01日 09:28:53   作者:音視頻開發(fā)老舅  
這篇文章主要為大家詳細介紹了QT如何利用Creator和OpenCV實現(xiàn)圖像灰度化效果,文中的示例代碼講解詳細,感興趣的小伙伴可以嘗試一下

Qt Creator是跨平臺的 Qt IDE, Qt Creator 是 Qt 被 Nokia 收購后推出的一款新的輕量級集成開發(fā)環(huán)境(IDE)。此 IDE 能夠跨平臺運行,支持的系統(tǒng)包括 Linux(32 位及 64 位)、Mac OS X 以及 Windows。根據(jù)官方描述,Qt Creator 的設計目標是使開發(fā)人員能夠利用 Qt 這個應用程序框架更加快速及輕易的完成開發(fā)任務。

下面是QT+QT creator+OpenCV圖像灰度化源碼

1).pro文件

#-------------------------------------------------
#
#
#-------------------------------------------------
 
QT       += core gui
 
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
 
TARGET = myQTDemo
TEMPLATE = app
 
 
SOURCES += main.cpp\
        mainwindow.cpp
 
HEADERS  += mainwindow.h
 
FORMS    += mainwindow.ui
INCLUDEPATH+=d:\opencv249\include\opencv\
                    d:\opencv249\include\opencv2\
                    d:\opencv249\include
 
LIBS+=d:\opencv249\lib\libopencv_calib3d249.dll.a\
        d:\opencv249\lib\libopencv_contrib249.dll.a\
        d:\opencv249\lib\libopencv_core249.dll.a\
        d:\opencv249\lib\libopencv_features2d249.dll.a\
        d:\opencv249\lib\libopencv_flann249.dll.a\
        d:\opencv249\lib\libopencv_gpu249.dll.a\
        d:\opencv249\lib\libopencv_highgui249.dll.a\
        d:\opencv249\lib\libopencv_imgproc249.dll.a\
        d:\opencv249\lib\libopencv_legacy249.dll.a\
        d:\opencv249\lib\libopencv_ml249.dll.a\
        d:\opencv249\lib\libopencv_objdetect249.dll.a\
        d:\opencv249\lib\libopencv_video249.dll.a

2).h文件

#ifndef MAINWINDOW_H
#define MAINWINDOW_H
 
#include <QMainWindow>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
namespace Ui {
class MainWindow;
}
 
class MainWindow : public QMainWindow
{
    Q_OBJECT
 
public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
    cv::Mat image,image2;
      QImage img;
 
private slots:
    void on_pushButton_clicked();
 
    void on_pushButton_2_clicked();
 
private:
    Ui::MainWindow *ui;
};
 
#endif // MAINWINDOW_H

3).cpp文件

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QString>
#include <QFileDialog>
#include <QMessageBox>
#include <opencv/cv.h>
#include <QTextCodec>
using namespace cv;
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}
 
MainWindow::~MainWindow()
{
    delete ui;
}
 
void MainWindow::on_pushButton_clicked()
{
    QString filename = QFileDialog::getOpenFileName(this,tr("Open Image"),"",tr("Image File(*.bmp *.jpg *.jpeg *.png)"));
    QTextCodec *code = QTextCodec::codecForName("gb18030");
    std::string name = code->fromUnicode(filename).data();
    image = cv::imread(name);
 
    if(!image.data)
    {
        QMessageBox msgBox;
        msgBox.setText(tr("image data is null"));
        msgBox.exec();
    }
    else
    {
        cv::cvtColor(image,image2,CV_BGR2RGB);
        img = QImage((const unsigned char*)(image2.data),image.cols,image.rows, image.step,  QImage::Format_RGB888);
        ui->label->clear();
        ui->label->setPixmap(QPixmap::fromImage(img));
        //ui->processPushButton->setEnabled(true);
        ui->label->resize(ui->label->pixmap()->size());
    }
}
 
void MainWindow::on_pushButton_2_clicked()
{
    // cv::flip(image,image,1);
    Mat gray;
 
    cvtColor(image,gray,CV_BGR2GRAY);
    // cvtColor(gray,gray,CV_bg)
  //  imshow("li",gray);
 
    // cv::cvtColor(image,image,CV_BGR2RGB);
    //      img = QImage((const unsigned char*)(image.data),image.cols,image.rows,image.cols*image.channels(),  QImage::Format_RGB888);
    img = QImage((const unsigned char*)(gray.data),gray.cols,gray.rows,gray.step,  QImage::Format_Indexed8);
 
    ui->label->setPixmap(QPixmap::fromImage(img));
}

到此這篇關于QT Creator+OpenCV實現(xiàn)圖像灰度化的示例代碼的文章就介紹到這了,更多相關QT Creator OpenCV圖像灰度化內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • C語言實現(xiàn)的學生選課系統(tǒng)代碼分享

    C語言實現(xiàn)的學生選課系統(tǒng)代碼分享

    這篇文章主要介紹了C語言實現(xiàn)的學生選課系統(tǒng)代碼分享,具有一定參考價值,需要的朋友可以了解下。
    2017-10-10
  • C++如何有效地利用命名空間

    C++如何有效地利用命名空間

    談到C++編程中的模塊化和組織性時,命名空間(Namespace)是一個重要的概念,所以本文主要來和大家聊聊C++命名空間的概念、用法以及如何有效地利用它來管理代碼,有需要的可以參考下
    2023-09-09
  • 淺析C++的引用與const指針與各種傳遞方式

    淺析C++的引用與const指針與各種傳遞方式

    這篇文章主要介紹了淺析C++的引用與const指針與各種傳遞方式的相關資料,需要的朋友可以參考下
    2017-08-08
  • C++ 超詳細深入分析單例模式

    C++ 超詳細深入分析單例模式

    單例模式(Singleton Pattern)是最簡單的設計模式之一。這種類型的設計模式屬于創(chuàng)建型模式,它提供了一種創(chuàng)建對象的最佳方式,這種模式涉及到一個單一的類,該類負責創(chuàng)建自己的對象,同時確保只有單個對象被創(chuàng)建
    2022-03-03
  • C++概念重載、覆蓋、隱藏的使用說明

    C++概念重載、覆蓋、隱藏的使用說明

    本篇文章介紹了,在C++中概念重載、覆蓋、隱藏的使用分析說明。需要的朋友參考下
    2013-05-05
  • C++利用Opencv實現(xiàn)多個圓形檢測

    C++利用Opencv實現(xiàn)多個圓形檢測

    霍夫圓檢測是opencv中用來檢測圓的重要算法,簡單的說,霍夫圓檢測就是對圖像中的弧線做切線,再在切點位置做切線的垂線,然后看這些垂線能交于一點的個數(shù),這個在方法中是自己設定的
    2022-08-08
  • mac 配置Clion運行C和C++的環(huán)境的詳細步驟

    mac 配置Clion運行C和C++的環(huán)境的詳細步驟

    這篇文章主要介紹了mac 配置Clion運行C和C++的環(huán)境的步驟詳解,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • 深入理解C++中的vector類的用法及特性

    深入理解C++中的vector類的用法及特性

    vector直接翻譯過來為向量,在C++中為封裝動態(tài)數(shù)組的容器,且有序,需要的朋友可以參考下
    2016-05-05
  • C++的缺省參數(shù)你了解嘛

    C++的缺省參數(shù)你了解嘛

    這篇文章主要為大家介紹了C++缺省參數(shù),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • C++11智能指針中的 unique_ptr實例詳解

    C++11智能指針中的 unique_ptr實例詳解

    unique是獨特的、唯一的意思,故名思議,unique_ptr可以“獨占”地擁有它所指向的對象,它提供一種嚴格意義上的所有權。這篇文章主要介紹了C++11智能指針中的 unique_ptr實例詳解,需要的朋友可以參考下
    2020-06-06

最新評論