close

接續之前一篇<二值化灰階影像 Binarize a gray level image Using OpenCV 2.4.6 with Qt5 >

這次打算寫一個即時調整門檻值並顯示對應二值化後的小圖

1. 在tabwidget插入一個頁面<參數>

2. 新增一個horizontalSlider

3. 新增一個lcdNumber, 用來即時顯示目前門檻值

4. 另外拉一個Form layout於該頁面下方(下圖紅色框框所示), 並拉一個label元件放進去,用來顯示小圖, 系統自動命名為label_3

首先, 如何顯示horizontalSlider值?

在mainwindow建構子(constructor)插入下列

connect(ui->horizontalSlider,SIGNAL(valueChanged(int)),ui->lcdNumber,SLOT(display(int)));  //顯示二值化門檻值

再來如果原始圖片超大張,如何至放置小圖顯示呢?

依樣畫葫蘆, 在mainwindow建構子(constructor)插入下列

ui->label_3->setScaledContents(true);//stretched效果

相反地, 如此一來會造成小圖被拉大, 成為奇怪的比例, 因此可以修改原來imshow的功能, 加入設定/不設定顯示大小

ImageUtility.h

void imshow(QLabel* const label,const QImage& qimg,bool bResize); //顯示QImage影像(在QLabel)

 

ImageUtility.cpp

 

//顯示影像

void imshow(QLabel* const label, const QImage& qimg, bool bResize)

 {

       label->move(0,0);
       label->setPixmap(QPixmap::fromImage(qimg));
     
if(bResize)

       label->resize(label->pixmap()->size());

}
-------------------------------------------------------------------------------------
修改原來二值化副程式
//二值化
void  MainWindow::actionBinarize()
 
{
 
       doubletic,toc,tcost;//計時開始,計時結束,花費時間
 
       img_bin=img_gray.clone();//複製影像
 
       tic=static_cast<double>(cv::getTickCount());//tic
 
       int thresholded = ui->horizontalSlider->value();
 
       cv::threshold(img_gray,img_bin, thresholded, 255, cv::THRESH_BINARY);
 
       toc=static_cast<double>(cv::getTickCount());//toc
 
       tcost=(toc-tic)/cv::getTickFrequency();//花費時間
 
       QImageqimg_bin=Mat2QImage(img_bin);//Mat2QImage
 
       imshow(ui->label,qimg_bin,0);//顯示影像(原始大圖)
 
       imshow(ui->label_3,qimg_bin,1);//顯示影像(小圖)
 
       scaleImage(1);
 
}

Youtube操作: 二值化門檻

-----------------------------------------------------------------------------------------------------------------------

mainwindow.cpp

在建構式加入下列

connect(ui->horizontalSlider_2, SIGNAL(valueChanged(int)), ui->lcdNumber_2, SLOT(display(int)));//彩色雜訊數量

 

 


Youtube操作: 彩色雜訊

Youtube操作: 灰階雜訊

 
 

 

 

arrow
arrow
    文章標籤
    opencv Qt5
    全站熱搜

    me1237guy 發表在 痞客邦 留言(0) 人氣()