91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

opencv FT顯著性檢測算法怎么使用

發布時間:2022-01-04 09:57:48 來源:億速云 閱讀:189 作者:iii 欄目:大數據

本篇內容主要講解“opencv FT顯著性檢測算法怎么使用”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“opencv FT顯著性檢測算法怎么使用”吧!

FT算法原理

FT算法出自論文:

Frequency-tuned salient region detection

FT算法實現也非常簡單,該方法從頻率角度分析圖像。

圖像在頻率域可以分成低頻部分和高頻部分。低頻部分反映了圖像的整體信息,如物體的輪廓,基本的組成區域。高頻部分反映了圖像的細節信息,如物體的紋理。顯著性區域檢測用到的更多的是低頻部分的信息。

在實際進行計算時,FT方法使用窗口5*5的高斯平滑來實現對最高頻的舍去。像素的顯著性可以用下面公式計算:

opencv FT顯著性檢測算法怎么使用

其中,Iu為圖像的平均特征,使用Lab顏色特征,后一項為像素p在高斯平滑后的Lab顏色特征,||.||為L2范式,即計算前一項和后一項在了Lab顏色空間的歐氏距離。

算法實現

FT方法實現簡單,只需要高斯平滑和平均值計算。

  1. 對圖像進行5*5的高斯平滑

  2. 轉換顏色空間。RGB顏色空間轉換為CIELAB顏色空間

  3. 計算整幅圖片的l、a、b的平均值

  4. 按照算法中的公式,計算每個像素l、a、b值同圖像三個l、a、b均值的歐氏距離,得到顯著圖

  5. 歸一化。圖像中每個像素的顯著值除以最大的那個顯著值。得到最終的顯著圖

程序編寫:

void FT::calculateSaliencyMap(Mat *src, Mat * dst, bool corlor,int ksize){  if (corlor && (*src).channels() == 3)  //處理彩色域  {    Mat img3f = (*src);    img3f.convertTo(img3f, CV_32FC3, 1.0 / 255);    Mat sal(img3f.size(), CV_32F), tImg;    GaussianBlur(img3f, tImg, Size(ksize, ksize), 0);//高斯平滑去除高頻信息    cvtColor(tImg, tImg, COLOR_BGR2Lab);//轉換為LAB顏色空間    Scalar colorM = mean(tImg); //計算整幅圖像的LAB顏色均值    //遍歷圖像    for (int r = 0; r < tImg.rows; r++)    {      float *s = sal.ptr<float>(r);      float *lab = tImg.ptr<float>(r);      for (int c = 0; c < tImg.cols; c++, lab += 3)        //計算每個像素LAB值與LAB均值的差,即為顯著性        s[c] = (float)(sqr(colorM[0] - lab[0]) + sqr(colorM[1] - lab[1]) + sqr(colorM[2] - lab[2]));    }    normalize(sal, *dst, 0, 1, NORM_MINMAX);  }  else //灰度域  {    Mat imgf, tImg;    imgf = *src;
   if (imgf.channels() == 3)    {      cvtColor(imgf, imgf, COLOR_RGB2GRAY);    }    imgf.convertTo(imgf, CV_32FC1, 1.0 / 255);    Scalar colorM = mean(imgf);    GaussianBlur(imgf, tImg, Size(ksize, ksize), 0);    Mat  sal(imgf.size(), CV_32F);    for (int r = 0; r < tImg.rows; r++)    {      float *s = sal.ptr<float>(r);      float *gray = tImg.ptr<float>(r);      for (int c = 0; c < tImg.cols; c++)        s[c] = (colorM[0] - gray[c])*(colorM[0] - gray[c]);    }
   normalize(sal, *dst, 0, 1, NORM_MINMAX);  }}
算法效果

opencv FT顯著性檢測算法怎么使用

opencv FT顯著性檢測算法怎么使用

opencv FT顯著性檢測算法怎么使用

到此,相信大家對“opencv FT顯著性檢測算法怎么使用”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

谷城县| 松原市| 区。| 东方市| 江西省| 邵武市| 二连浩特市| 同江市| 普陀区| 清镇市| 顺昌县| 酒泉市| 镇赉县| 南川市| 清河县| 武宣县| 怀柔区| 利辛县| 万源市| 鲜城| 宁晋县| 丹东市| 海宁市| 渑池县| 钟祥市| 都匀市| 阳山县| 道孚县| 枝江市| 屯昌县| 西平县| 义马市| 满洲里市| 蛟河市| 嘉义县| 普格县| 巩义市| 元氏县| 眉山市| 营口市| 资兴市|