最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++圖像處理之雙邊濾波

 更新時間:2021年10月11日 10:22:13   作者:Asimov_Liu  
這篇文章主要為大家詳細(xì)介紹了C++圖像處理之雙邊濾波,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了C++圖像處理之雙邊濾波的具體代碼,供大家參考,具體內(nèi)容如下

1、 近期在學(xué)習(xí)雙邊濾波相關(guān)知識,其原理如下(以后補上):

2 、灰度圖雙邊濾波實現(xiàn)C++代碼如下,網(wǎng)上大多數(shù)是基于8位灰度圖和彩色圖像的。(此次代碼未經(jīng)優(yōu)化,可去除opencv依賴):

//灰度圖雙邊濾波
void m_bilateralFilter(cv::Mat src,cv::Mat& dst,int radius,float sigma_r,float sigma_d)
{
 if (src.empty())
  return;
 if (dst.empty())
 {
  dst = src.clone();
 }
 if (src.depth() == CV_16U){
  for (int i = radius; i < src.rows - radius; i++)
   for (int j = radius; j < src.cols - radius; j++)
   {
    float sum_1 = .0f, sum_2 = .0f;
    for (int k = 0; k < 2 * radius - 1; k++)
     for (int l = 0; l < 2 * radius - 1; l++)
     {
      int dis_x = radius - k;
      int dis_y = radius - l;
      int coord_x_image = i - radius + k;
      int coord_y_image = j - radius + l;
      float dis_spatial = dis_x*dis_x + dis_y*dis_y;
      float dis_range = (src.at<unsigned short>(i, j)
       - src.at<unsigned short>(coord_x_image, coord_y_image))*(src.at<unsigned short>(i, j)
       - src.at<unsigned short>(coord_x_image, coord_y_image));
      float c_tmp = exp(-dis_spatial /
       (2 * sigma_d * sigma_d));
      float s_tmp = exp(-dis_range /
       (2 * sigma_r * sigma_r));
      sum_1 += c_tmp*s_tmp*src.at<unsigned short>(coord_x_image, coord_y_image);
      sum_2 += c_tmp*s_tmp;
 
     }
    dst.at<unsigned short>(i, j) = sum_1 / sum_2;
   }
 }
 else if (src.depth() == CV_8U)
 {
  for (int i = radius; i < src.rows - radius; i++)
   for (int j = radius; j < src.cols - radius; j++)
   {
    float sum_1 = .0f, sum_2 = .0f;
    for (int k = 0; k < 2 * radius - 1; k++)
     for (int l = 0; l < 2 * radius - 1; l++)
     {
      int dis_x = radius - k;
      int dis_y = radius - l;
      int coord_x_image = i - radius + k;
      int coord_y_image = j - radius + l;
      float dis_spatial = dis_x*dis_x + dis_y*dis_y;
      float dis_range = (src.at<unsigned char>(i, j)
       - src.at<unsigned char>(coord_x_image, coord_y_image))*(src.at<unsigned char>(i, j)
       - src.at<unsigned char>(coord_x_image, coord_y_image));
      float c_tmp = exp(-dis_spatial /
       (2 * sigma_d * sigma_d));
      float s_tmp = exp(-dis_range /
       (2 * sigma_r * sigma_r));
      sum_1 += c_tmp*s_tmp*src.at<unsigned char>(coord_x_image, coord_y_image);
      sum_2 += c_tmp*s_tmp;
 
     }
    dst.at<unsigned char>(i, j) = sum_1 / sum_2;
   }
 }
}

3、目前是基于單通道圖像,效果如下:

原圖:

opencv 庫的效果(cv::bilateralFilter(img_src, img_dst, 10,10 * 2, 10 / 2))

該程序的效果(m_bilateralFilter(img_src, img_dst, 5, 10 * 2, 10 / 2))

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C++靜態(tài)庫與動態(tài)庫文件的生成和使用教程

    C++靜態(tài)庫與動態(tài)庫文件的生成和使用教程

    庫文件是計算機上的一類文件,可以簡單的把庫文件看成一種代碼倉庫,它提供給使用者一些可以直接拿來用的變量、函數(shù)和類,下面這篇文章主要給大家介紹了關(guān)于C++靜態(tài)庫與動態(tài)庫文件的生成和使用的相關(guān)資料,需要的朋友可以參考下
    2023-03-03
  • C++?sqlite3數(shù)據(jù)庫配置使用教程

    C++?sqlite3數(shù)據(jù)庫配置使用教程

    SQLite 是一種嵌入式的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),它是一個開源項目,已經(jīng)被廣泛應(yīng)用于各種應(yīng)用程序和操作系統(tǒng)中,這篇文章主要介紹了C++?sqlite3數(shù)據(jù)庫配置使用,需要的朋友可以參考下
    2023-08-08
  • C語言進(jìn)階教程之預(yù)處理

    C語言進(jìn)階教程之預(yù)處理

    C語言提供了多種預(yù)處理功能,如宏定義、文件包含、條件編譯等,下面這篇文章主要給大家介紹了關(guān)于C語言進(jìn)階教程之預(yù)處理的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02
  • C++ 打開選擇文件夾對話框選擇目錄的操作

    C++ 打開選擇文件夾對話框選擇目錄的操作

    這篇文章主要介紹了C++ 打開選擇文件夾對話框選擇目錄的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • C語言從txt文件中逐行讀入數(shù)據(jù)存到數(shù)組中的實現(xiàn)方法

    C語言從txt文件中逐行讀入數(shù)據(jù)存到數(shù)組中的實現(xiàn)方法

    下面小編就為大家?guī)硪黄狢語言從txt文件中逐行讀入數(shù)據(jù)存到數(shù)組中的實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-12-12
  • 淺析結(jié)束程序函數(shù)exit, _exit,atexit的區(qū)別

    淺析結(jié)束程序函數(shù)exit, _exit,atexit的區(qū)別

    在一個程序中最多可以用atexit()注冊32個處理函數(shù),這些處理函數(shù)的調(diào)用順序與其注冊的順序相反,也即最先注冊的最后調(diào)用,最后注冊的最先調(diào)用
    2013-09-09
  • C語言 遞歸實現(xiàn)排雷游戲

    C語言 遞歸實現(xiàn)排雷游戲

    掃雷是電腦上很經(jīng)典很經(jīng)典的傳統(tǒng)老游戲,從小編第一次摸到計算機開始就玩過掃雷,雖然當(dāng)時并不理解玩法原理,但終是第一次玩電腦游戲,下面來從掃雷的前世今生講起
    2021-11-11
  • C++關(guān)鍵字typename的深入理解

    C++關(guān)鍵字typename的深入理解

    本篇文章是對C++中的關(guān)鍵字typename進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • c++實現(xiàn)一個簡易的網(wǎng)絡(luò)緩沖區(qū)的實踐

    c++實現(xiàn)一個簡易的網(wǎng)絡(luò)緩沖區(qū)的實踐

    這篇文章主要介紹了c++實現(xiàn)一個簡易的網(wǎng)絡(luò)緩沖區(qū)的實踐,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • C++關(guān)鍵字mutable學(xué)習(xí)筆記

    C++關(guān)鍵字mutable學(xué)習(xí)筆記

    這篇文章主要為大家介紹了C++關(guān)鍵字mutable學(xué)習(xí)筆記,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-10-10

最新評論

印江| 同德县| 北碚区| 临西县| 保康县| 扶风县| 东明县| 昔阳县| 武川县| 株洲县| 项城市| 新乡市| 抚顺县| 基隆市| 钦州市| 东海县| 阜康市| 综艺| 昌邑市| 乌鲁木齐县| 松江区| 潞城市| 富顺县| 长丰县| 裕民县| 格尔木市| 青田县| 紫云| 泉州市| 台湾省| 洮南市| 商河县| 盖州市| 连城县| 贵定县| 五家渠市| 丰宁| 泰来县| 大悟县| 安陆市| 安福县|