亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

下面是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));
}

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

相關(guān)文章

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

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

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

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

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

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

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

    C++ 超詳細(xì)深入分析單例模式

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

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

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

    C++利用Opencv實(shí)現(xiàn)多個(gè)圓形檢測(cè)

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

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

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

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

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

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

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

    C++11智能指針中的 unique_ptr實(shí)例詳解

    unique是獨(dú)特的、唯一的意思,故名思議,unique_ptr可以“獨(dú)占”地?fù)碛兴赶虻膶?duì)象,它提供一種嚴(yán)格意義上的所有權(quán)。這篇文章主要介紹了C++11智能指針中的 unique_ptr實(shí)例詳解,需要的朋友可以參考下
    2020-06-06

最新評(píng)論