日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Qt creator5.7 OpenCV249之图片灰度处理(含源码下载)

發布時間:2025/3/15 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Qt creator5.7 OpenCV249之图片灰度处理(含源码下载) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我們先來看程序運行:




先了解下原理:

圖像灰度化是指將彩色圖片處理為256級的灰度圖像。

公式為Gray=x*R+y*G+z*B

Gray是當前像素的灰度值,x,y,z 是系數,R,G,B表示紅綠藍

一般表示為:

Gray=0.299*R+0.587*G+0.144*B

實際上為了方便可以這樣:

Gray=(R+G+B)/3


Opencv里面的函數如下:

void cv::cvtColor(

InputArray src,

OutputArray dst,

int code,

int dstCn=0);

dstCn我們采用默認值就可以了。

code呢?

在一般的c++里面采用COLOR_RGB2GRAY

在Qt里面用COLOR_BGR2GRAY


還有一個要注意的地方:



QImage::Format_Grayscale8
24
The image is stored using an 8-bit grayscale format.


當我們要把灰度圖像用QImage讀取時,要設置此方式:

下面是源碼打包下載地址:

http://download.csdn.net/detail/qq78442761/9778008

下面是程序源碼

widget.h

#ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QMessageBox> #include <QImage> #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc/imgproc.hpp>namespace Ui { class Widget; }class Widget : public QWidget {Q_OBJECTpublic:explicit Widget(QWidget *parent = 0);~Widget();cv::Mat srcImage,dstImage,tempImage;QImage img;private slots:void on_pushButton_clicked();private:Ui::Widget *ui; };#endif // WIDGET_H
widget.cpp

#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget) {ui->setupUi(this);setWindowTitle(tr("圖像灰度處理"));setMaximumSize(626,351);srcImage=cv::imread("dog.jpg");if(!srcImage.data){QMessageBox megBox;megBox.setText(tr("圖片讀取失敗"));megBox.exec();}else{//把原始圖像載入進第一個label并且顯示cv::cvtColor(srcImage,srcImage,CV_BGR2RGB);img=QImage((const unsigned char*)(srcImage.data),srcImage.cols,srcImage.rows,srcImage.cols*srcImage.channels(),QImage::Format_RGB888);ui->label->clear();img=img.scaled(ui->label->size());ui->label->setPixmap(QPixmap::fromImage(img));}connect(ui->pushButton,SIGNAL(clicked(bool)),this,SLOT(on_pushButton_clicked()));}void Widget::on_pushButton_clicked() {cv::cvtColor(srcImage,dstImage,cv::COLOR_BGR2GRAY);//cv::imshow("test",dstImage);img=QImage((const unsigned char*)(dstImage.data),dstImage.cols,dstImage.rows,dstImage.cols*dstImage.channels(),QImage::Format_Grayscale8);img=img.scaled(ui->label_2->size());ui->label_2->setPixmap(QPixmap::fromImage(img)); }Widget::~Widget() {delete ui; } main.cpp

#include "widget.h" #include <QApplication>int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); }


總結

以上是生活随笔為你收集整理的Qt creator5.7 OpenCV249之图片灰度处理(含源码下载)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。