日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

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

發(fā)布時(shí)間:2025/3/15 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Qt creator5.7 OpenCV249之图片灰度处理(含源码下载) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

我們先來(lái)看程序運(yùn)行:




先了解下原理:

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

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

Gray是當(dāng)前像素的灰度值,x,y,z 是系數(shù),R,G,B表示紅綠藍(lán)

一般表示為:

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

實(shí)際上為了方便可以這樣:

Gray=(R+G+B)/3


Opencv里面的函數(shù)如下:

void cv::cvtColor(

InputArray src,

OutputArray dst,

int code,

int dstCn=0);

dstCn我們采用默認(rèn)值就可以了。

code呢?

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

在Qt里面用COLOR_BGR2GRAY


還有一個(gè)要注意的地方:



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


當(dāng)我們要把灰度圖像用QImage讀取時(shí),要設(shè)置此方式:

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

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{//把原始圖像載入進(jìn)第一個(gè)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(); }


總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。