91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

開發環境為QT5.8+opencv3.2,主要實現了邊緣檢測,輪廓提取及輪廓跟蹤,邊緣檢測使用了Canny算子、Sobel算子、Laplacian算子,輪廓跟蹤使用八鄰域法。

資源截圖

代碼片段和文件信息

#include?“dialog.h“
#include?“ui_dialog.h“
#include
#include

Dialog::Dialog(QWidget?*parent)?:
????QDialog(parent)
????ui(new?Ui::Dialog)
{
????ui->setupUi(this);
}

Dialog::~Dialog()
{
????delete?ui;
}

/*----------------------------
*?功能?:?響應用戶點擊打開圖片按鈕事件
*----------------------------
*?函數?:?on_openImgBtn_clicked
*?訪問?:?private
*?返回?:?void
*
*/
void?Dialog::on_openImgBtn_clicked()
{
????//打開原始灰度圖
????fileName?=?QFileDialog::getOpenFileName(this“Open?Image““.““Image?File(*.png?*.jpg?*.jpeg?*.bmp)“);
????grayImg?=?imread(fileName.toLatin1().data()IMREAD_GRAYSCALE);
????if(grayImg.empty())
????????return;

????//在QLabel中顯示圖像
????QPixmap?*pixmap?=?new?QPixmap(fileName);
????pixmap->scaled(ui->oriImgLabel->size()?Qt::KeepAspectRatio);
????ui->oriImgLabel->setScaledContents(true);
????ui->oriImgLabel->setPixmap(*pixmap);
}

/*----------------------------
*?功能?:?響應用戶點擊邊緣檢測按鈕事件
*----------------------------
*?函數?:?on_edgeImgBtn_clicked
*?訪問?:?private
*?返回?:?void
*
*/
void?Dialog::on_edgeImgBtn_clicked()
{
????uchar?index?=?ui->edgeComBox->currentIndex();//獲取選擇的算子的標號
????Mat?edgeImg;

????switch?(index)?{
????????case?0:
????????{
????????????//Canny邊緣檢測
????????????Canny(grayImg?edgeImg?30?80);
????????????break;
????????}
????????case?1:
????????{
????????????//Sobel邊緣檢測
????????????Mat?x_edgeImg?y_edgeImg;
????????????Mat?abs_x_edgeImg?abs_y_edgeImg;

????????????/*****先對x方向進行邊緣檢測********/
????????????//因為Sobel求出來的結果有正負,8位無符號表示不全,故用16位有符號表示
????????????Sobel(grayImgx_edgeImg?CV_16S?1?0?3?1?1?BORDER_DEFAULT);
????????????convertScaleAbs(x_edgeImg?abs_x_edgeImg);//將16位有符號轉化為8位無符號

????????????/*****再對y方向進行邊緣檢測********/
????????????Sobel(grayImg?y_edgeImg?CV_16S?0?1?3?1?1?BORDER_DEFAULT);
????????????convertScaleAbs(y_edgeImg?abs_y_edgeImg);

????????????addWeighted(abs_x_edgeImg?0.5?abs_y_edgeImg?0.5?0?edgeImg);
????????????break;
????????}
????????case?2:
????????{
????????????//Laplacian邊緣檢測
????????????Mat?lapImg;

????????????Laplacian(grayImg?lapImg?CV_16S?5?1?0?BORDER_DEFAULT);
????????????convertScaleAbs(lapImg?edgeImg);
????????????break;
????????}
????????default:
????????{
????????????break;
????????}
????}


????imwrite(“edge.bmp“edgeImg);

????//在QLabel中顯示圖像
????QPixmap?*pixmap?=?new?QPixmap(“edge.bmp“);
????pixmap->scaled(ui->edgeImgLabel->size()?Qt::KeepAspectRatio);
????ui->edgeImgLabel->setScaledContents(true);
????ui->edgeImgLabel->setPixmap(*pixmap);
}
/*----------------------------
*?功能?:?響應用戶點擊輪廓提取按鈕事件
*----------------------------
*?函數?:?on_conImgBtn_clicked
*?訪問?:?private
*?返回?:?void
*
*/
void?Dialog::on_conImgBtn_clicked()
{
????Mat?contImg?=?Mat?::zeros(grayImg.size()CV_8UC3);//定義三通道輪廓提取圖像

????Mat?binImg;
????threshold(grayImg?binImg?127?255?THRESH_OTSU);//大津法進行圖像二值化

????vector>?contours;
????vector?hierarchy;
????//

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????8766??2018-05-29?20:02??edgeDetection\edgeDetection\dialog.cpp

?????文件????????705??2018-05-29?19:50??edgeDetection\edgeDetection\dialog.h

?????文件???????4934??2018-05-29?19:43??edgeDetection\edgeDetection\dialog.ui

?????文件???????1604??2018-05-29?11:03??edgeDetection\edgeDetection\edgeDetection.pro

?????文件??????24077??2018-05-29?20:02??edgeDetection\edgeDetection\edgeDetection.pro.user

?????文件?????251078??2018-05-19?16:08??edgeDetection\edgeDetection\gray.bmp

?????文件????????175??2018-05-29?10:42??edgeDetection\edgeDetection\main.cpp

?????目錄??????????0??2018-05-29?20:03??edgeDetection\build-edgeDetection-Desktop_Qt_5_8_0_MSVC2015_64bit-Debug

?????目錄??????????0??2018-05-29?20:03??edgeDetection\edgeDetection

?????目錄??????????0??2018-05-29?19:14??edgeDetection

-----------?---------??----------?-----??----

???????????????291339????????????????????10


評論

共有 條評論