版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第OpenCV+Qt實現(xiàn)圖像處理操作本文實例為大家分享了OpenCV+Qt實現(xiàn)圖像處理操作的具體代碼,供大家參考,具體內(nèi)容如下
Qt界面實現(xiàn)雪花屏高斯模糊中值濾波毛玻璃灰度化XY方向模糊雙邊模糊腐蝕[圖像處理操作]
要求左邊原圖,右邊效果圖
結(jié)果展示如下:[圖像處理實現(xiàn)有點多,就不一個一個地展示了,各別展示如下]
雪花屏
毛玻璃
灰度化處理
二、使用Qt界面
使用到Qt中的UI設(shè)計界面
設(shè)計好界面之后最好先保存
對每一個按鈕設(shè)計槽函數(shù)
三、圖像處理操作完整代碼
難點在于:Qt是QImage而OpenCV是Mat,需要Mat轉(zhuǎn)QImage才能在Qt界面中進(jìn)行圖片的正常顯示
頭文件中導(dǎo)入opencv包
#ifndefWIDGET_H
#defineWIDGET_H
#includeopencv2/opencv.hpp
#includeQWidget
usingnamespacecv;
QT_BEGIN_NAMESPACE
namespaceUi{classWidget;}
QT_END_NAMESPACE
classWidget:publicQWidget
Q_OBJECT
public:
//
Widget(QWidget*parent=nullptr);
explicitWidget(QWidget*parent=0);
~Widget();
privateslots:
voidon_pushButton_clicked();//雪花屏
voidon_pushButton_2_clicked();//高斯模糊
voidon_pushButton_3_clicked();//中值濾波
voidon_pushButton_4_clicked();//毛玻璃
voidon_pushButton_5_clicked();//灰度化
voidon_pushButton_6_clicked();//XY方向模糊
voidon_pushButton_7_clicked();//雙邊模糊
voidon_pushButton_8_clicked();//腐蝕
private:
Ui::Widget*ui;
Matsrcimage;//原圖
#endif//WIDGET_H
源文件中實現(xiàn)圖像處理方法
#include"widget.h"
#include"ui_widget.h"
Widget::Widget(QWidget*parent):
QWidget(parent),
ui(newUi::Widget)
ui-setupUi(this);
Widget::~Widget()
deleteui;
//雪花屏
voidWidget::on_pushButton_clicked()
//讀取原始圖片
Matsrcimage=imread("D:/000imageopencv/efls111.jpg");
//Mat轉(zhuǎn)QImage顏色
cvtColor(srcimage,srcimage,CV_BGR2RGB);
//Mat轉(zhuǎn)QImage像素
oldlabel放置原圖
QImagedisimage=QImage(srcimage.data,srcimage.cols,srcimage.rows,srcimage.cols*srcimage.channels(),QImage::Format_RGB888);
disimage=disimage.scaled(ui-oldlabel-width(),ui-oldlabel-height());
ui-oldlabel-setPixmap(QPixmap::fromImage(disimage));
//像素二維矩陣函數(shù)
introws=srcimage.rows;
//像素二維矩陣列數(shù)
intcols=srcimage.cols*srcimage.channels();
for(inti=0;irows;i++)
{
uchar*data=srcimage.ptruchar
for(intj=0;jcols;j++)
{
//雪花屏特效
intq=rand()%cols;
data[q]=155;//某些通道隨機(jī)改成155
}
}
//Mat轉(zhuǎn)QImage像素
newlabel放置圖像處理后圖片
QImagedisimage2=QImage(srcimage.data,srcimage.cols,srcimage.rows,srcimage.cols*srcimage.channels(),QImage::Format_RGB888);
disimage2=disimage2.scaled(ui-newlabel-width(),ui-newlabel-height());
ui-newlabel-setPixmap(QPixmap::fromImage(disimage2));
//高斯模糊
voidWidget::on_pushButton_2_clicked()
//讀取原始圖片
Matsrcimage=imread("D:/000imageopencv/efls111.jpg");
//Mat轉(zhuǎn)QImage顏色
cvtColor(srcimage,srcimage,CV_BGR2RGB);
//Mat轉(zhuǎn)QImage像素
oldlabel放置原圖
QImagedisimage=QImage(srcimage.data,srcimage.cols,srcimage.rows,srcimage.cols*srcimage.channels(),QImage::Format_RGB888);
Matretimage;
//高斯模糊
GaussianBlur(srcimage,retimage,Size(5,5),0,0);
//Mat轉(zhuǎn)QImage像素
newlabel放置圖像處理后圖片
QImagedisimage2=QImage(retimage.data,retimage.cols,retimage.rows,retimage.cols*retimage.channels(),QImage::Format_RGB888);
disimage2=disimage2.scaled(ui-newlabel-width(),ui-newlabel-height());
ui-newlabel-setPixmap(QPixmap::fromImage(disimage2));
//中值濾波
voidWidget::on_pushButton_3_clicked()
//讀取原始圖片
Matsrcimage=imread("D:/000imageopencv/efls111.jpg");
//Mat轉(zhuǎn)QImage顏色
cvtColor(srcimage,srcimage,CV_BGR2RGB);
//Mat轉(zhuǎn)QImage像素
oldlabel放置原圖
QImagedisimage=QImage(srcimage.data,srcimage.cols,srcimage.rows,srcimage.cols*srcimage.channels(),QImage::Format_RGB888);
disimage=disimage.scaled(ui-oldlabel-width(),ui-oldlabel-height());
ui-oldlabel-setPixmap(QPixmap::fromImage(disimage));
Matretumage;
//中值濾波
medianBlur(srcimage,retumage,5);
//Mat轉(zhuǎn)QImage像素
newlabel放置圖像處理后圖片
QImagedisimage2=QImage(retumage.data,retumage.cols,retumage.rows,retumage.cols*retumage.channels(),QImage::Format_RGB888);
disimage2=disimage2.scaled(ui-newlabel-width(),ui-newlabel-height());
ui-newlabel-setPixmap(QPixmap::fromImage(disimage2));
//毛玻璃
voidWidget::on_pushButton_4_clicked()
//讀取原始圖片
Matsrcimage=imread("D:/000imageopencv/efls111.jpg");
//Mat轉(zhuǎn)QImage顏色
cvtColor(srcimage,srcimage,CV_BGR2RGB);
//Mat轉(zhuǎn)QImage像素
oldlabel放置原圖
QImagedisimage=QImage(srcimage.data,srcimage.cols,srcimage.rows,srcimage.cols*srcimage.channels(),QImage::Format_RGB888);
disimage=disimage.scaled(ui-oldlabel-width(),ui-oldlabel-height());
ui-oldlabel-setPixmap(QPixmap::fromImage(disimage));
//毛玻璃
RNGrng;
intrandom;
intnum=5;
for(inti=0;isrcimage.rows-num;i++)
{
for(intj=0;jsrcimage.cols-num;j++)
{
//通過rng返回0-15隨機(jī)數(shù)
random=rng.uniform(0,num);
srcimage.atVec3b(i,j)[0]=srcimage.atVec3b(i+random,j+random)[0];
srcimage.atVec3b(i,j)[1]=srcimage.atVec3b(i+random,j+random)[1];
srcimage.atVec3b(i,j)[2]=srcimage.atVec3b(i+random,j+random)[2];
}
}
//Mat轉(zhuǎn)QImage像素
newlabel放置圖像處理后圖片
QImagedisimage2=QImage(srcimage.data,srcimage.cols,srcimage.rows,srcimage.cols*srcimage.channels(),QImage::Format_RGB888);
disimage2=disimage2.scaled(ui-newlabel-width(),ui-newlabel-height());
ui-newlabel-setPixmap(QPixmap::fromImage(disimage2));
//灰度化
voidWidget::on_pushButton_5_clicked()
//讀取原始圖片
Matsrcimage=imread("D:/000imageopencv/efls111.jpg");
//Mat轉(zhuǎn)QImage顏色
cvtColor(srcimage,srcimage,CV_BGR2RGB);
//Mat轉(zhuǎn)QImage像素
oldlabel放置原圖
QImagedisimage=QImage(srcimage.data,srcimage.cols,srcimage.rows,srcimage.cols*srcimage.channels(),QImage::Format_RGB888);
disimage=disimage.scaled(ui-oldlabel-width(),ui-oldlabel-height());
ui-oldlabel-setPixmap(QPixmap::fromImage(disimage));
Matretumage;
//灰度處理灰度是單通道8位QImage是24位三通道
cvtColor(srcimage,retumage,CV_BGR2GRAY);
cvtColor(retumage,retumage,CV_GRAY2BGR);
//Mat轉(zhuǎn)QImage像素
newlabel放置圖像處理后圖片
QImagedisimage2=QImage(retumage.data,retumage.cols,retumage.rows,retumage.cols*retumage.channels(),QImage::Format_RGB888);
disimage2=disimage2.scaled(ui-newlabel-width(),ui-newlabel-height());
ui-newlabel-setPixmap(QPixmap::fromImage(disimage2));
//XY方向模糊
voidWidget::on_pushButton_6_clicked()
//讀取原始圖片
Matsrcimage=imread("D:/000imageopencv/efls111.jpg");
//Mat轉(zhuǎn)QImage顏色
cvtColor(srcimage,srcimage,CV_BGR2RGB);
//Mat轉(zhuǎn)QImage像素
oldlabel放置原圖
QImagedisimage=QImage(srcimage.data,srcimage.cols,srcimage.rows,srcimage.cols*srcimage.channels(),QImage::Format_RGB888);
disimage=disimage.scaled(ui-oldlabel-width(),ui-oldlabel-height());
ui-oldlabel-setPixmap(QPixmap::fromImage(disimage));
Matretumage;
//xy軸模糊
blur(srcimage,retumage,Size(10,10));
//Mat轉(zhuǎn)QImage像素
newlabel放置圖像處理后圖片
QImagedisimage2=QImage(retumage.data,retumage.cols,retumage.rows,retumage.cols*retumage.channels(),QImage::Format_RGB888);
disimage2=disimage2.scaled(ui-newlabel-width(),ui-newlabel-height());
ui-newlabel-setPixmap(QPixmap::fromImage(disimage2));
//雙邊模糊
voidWidget::on_pushButton_7_clicked()
//讀取原始圖片
Matsrcimage=imread("D:/000imageopencv/efls111.jpg");
//Mat轉(zhuǎn)QImage顏色
cvtColor(srcimage,srcimage,CV_BGR2RGB);
//Mat轉(zhuǎn)QImage像素
oldlabel放置原圖
QImagedisimage=QImage(srcimage.data,srcimage.cols,srcimage.rows,srcimage.cols*srcimage.channels(),QImage::Format_RGB888);
disimage=disimage.scaled(ui-oldlabel-width(),ui-oldlabel-height());
ui-oldlabel-setPixmap(QPixmap::fromImage(disimage));
Matretumage;
//雙倍模糊
cv::bilateralFilter(srcimage,retumage,15,120,10,4);
//Mat轉(zhuǎn)QImage像素
newlabel放置圖像處理后圖片
QImagedisimage2=QImage(retumage.data,retumage.cols,retumage.rows,retumage.cols*retumage.channels(),QImage::Format_RGB888);
disimage2=disimage2.scaled(ui-newlabel-width(),ui-newlabel-height());
ui-newlabel-setPixmap(QPixmap::fromImage(disimage2));
voidWidget::on_pushButton_8_clicked()
//讀取原始圖片
Matsrcimage=imread("D:/000imageopencv/efls111.jpg");
//Mat轉(zhuǎn)QImage顏色
cvtColor(srcimage,srcimage,CV_BGR2RGB);
//Mat轉(zhuǎn)QImage像素
oldlabel放置原圖
QImage
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年行政工作年終總結(jié)范文(2篇)
- 2026年佛山市南海區(qū)桂城街道文翰第五幼兒園招聘儲備教師崗位備考題庫及1套完整答案詳解
- 2025年云南民族大學(xué)非事業(yè)編制人員公開招聘備考題庫附答案詳解
- 餐飲安全培訓(xùn)案例分析課件
- 7.2.1“白山黑水”-東北三省 課件 2025-2026學(xué)年人教版地理八年級下冊
- 餐飲安全專題培訓(xùn)班課件
- 2026年中國東方電氣集團(tuán)有限公司招聘備考題庫及參考答案詳解
- 2026年廣西貴港市華盛集團(tuán)新橋農(nóng)工商有限責(zé)任公司招聘備考題庫完整答案詳解
- 2026年會昌昌興酒店管理有限責(zé)任公司招聘勞務(wù)派遣工作人員備考題庫及答案詳解一套
- 2026年中糧米業(yè)(巢湖)有限公司招聘備考題庫完整答案詳解
- 兒科專科建設(shè)與發(fā)展規(guī)劃指南
- 煤礦基本知識培訓(xùn)課件
- GB/T 9754-2025色漆和清漆20°、60°和85°光澤的測定
- 運輸合同轉(zhuǎn)包協(xié)議書范本
- 碳排放監(jiān)測與控制技術(shù)-洞察闡釋
- 回顧性研究設(shè)計及寫作要點
- 中藥儲存養(yǎng)護(hù)管理制度
- T/CECS 10128-2021不銹鋼二次供水水箱
- 2025屆山東省臨沂市高三二模生物試題(解析版)
- 專利侵權(quán)訴訟合同范例
- 銀行審計試題解析及答案
評論
0/150
提交評論