欧美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語言 以字符形式讀寫文件詳解及示例代碼

    C語言 以字符形式讀寫文件詳解及示例代碼

    本文主要介紹C語言 以字符形式讀寫文件,這里整理了讀寫文件的一些資料并附示例代碼,供大家學習參考,有需要的小伙伴可以參考下
    2016-08-08
  • C++類與對象之運算符重載詳解

    C++類與對象之運算符重載詳解

    運算符重載的方法是定義一個重載運算符的函數(shù),在需要執(zhí)行被重載的運算符時,系統(tǒng)就自動調(diào)用該函數(shù),以實現(xiàn)相應的運算。也就是說,運算符重載是通過定義函數(shù)實現(xiàn)的
    2021-10-10
  • C++實現(xiàn)詞法分析器

    C++實現(xiàn)詞法分析器

    這篇文章主要為大家詳細介紹了C++實現(xiàn)詞法分析器的相關代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • C++中cin的用法詳細

    C++中cin的用法詳細

    這篇文章主要介紹了C++中cin的用法詳細,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-12-12
  • C語言之詳解靜態(tài)變量static

    C語言之詳解靜態(tài)變量static

    在C語言中static是用來修飾變量和函數(shù)的,這篇文章詳細介紹了static主要作用,文章中有詳細的代碼實例,需要的朋友可以參考閱讀
    2023-04-04
  • QT使用canon sdk拍照并保存到本機的方法示例

    QT使用canon sdk拍照并保存到本機的方法示例

    這篇文章主要介紹了QT使用canon sdk拍照并保存到本機的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-10-10
  • 使用C++實現(xiàn)FTP上傳和下載

    使用C++實現(xiàn)FTP上傳和下載

    當在Windows上使用C++進行FTP上傳和下載時,您可以使用libcurl庫來簡化操作,本文將為大家詳細介紹具體步驟,感興趣的小伙伴可以跟隨小編一起學習一下
    2023-12-12
  • C語言數(shù)據(jù)結構中數(shù)制轉換實例代碼

    C語言數(shù)據(jù)結構中數(shù)制轉換實例代碼

    這篇文章主要介紹了C語言數(shù)據(jù)結構中數(shù)制轉換實例代碼的相關資料,需要的朋友可以參考下
    2017-03-03
  • Define,const,static用法總結

    Define,const,static用法總結

    const定義的全局數(shù)據(jù)變量,其基本作用和define相同,但又在define的基礎上增加了好多功能
    2013-10-10
  • c語言詳解動態(tài)內(nèi)存分配及常見錯誤的解決

    c語言詳解動態(tài)內(nèi)存分配及常見錯誤的解決

    給數(shù)組分配多大的內(nèi)存空間?你是否和初學C時的我一樣,有過這樣的疑問。這一期就來聊一聊動態(tài)內(nèi)存的分配,讀完這篇文章,你可能對內(nèi)存的分配有一個更好的理解
    2022-04-04

最新評論