日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁 > 科技  > 軟件

用C++實(shí)現(xiàn)圖像處理中三種常見的濾波算法

來源: 責(zé)編: 時(shí)間:2023-10-28 16:29:56 347觀看
導(dǎo)讀在信號(hào)處理和圖像處理中,濾波是一種常見的操作,用于去除噪聲、增強(qiáng)信號(hào)或圖像的某些特征等。本文將介紹三種常見的濾波方法:均值濾波、高斯濾波和中值濾波,并比較它們的優(yōu)劣勢(shì)。一、均值濾波均值濾波是一種簡(jiǎn)單的濾波方法

在信號(hào)處理和圖像處理中,濾波是一種常見的操作,用于去除噪聲、增強(qiáng)信號(hào)或圖像的某些特征等。本文將介紹三種常見的濾波方法:均值濾波、高斯濾波和中值濾波,并比較它們的優(yōu)劣勢(shì)。swl28資訊網(wǎng)——每日最新資訊28at.com

swl28資訊網(wǎng)——每日最新資訊28at.com

一、均值濾波

均值濾波是一種簡(jiǎn)單的濾波方法,它通過將鄰域內(nèi)的像素值或數(shù)據(jù)值求平均,然后取平均值作為輸出。這種方法對(duì)于去除噪聲有一定的效果,尤其是對(duì)于均勻分布的噪聲。但是,均值濾波也存在一些問題,例如可能會(huì)使圖像變得模糊,特別是在邊緣部分。swl28資訊網(wǎng)——每日最新資訊28at.com

以下是C++實(shí)現(xiàn)均值濾波的代碼示例:swl28資訊網(wǎng)——每日最新資訊28at.com

#include <vector>  #include <cmath>    void meanFilter(std::vector<std::vector<int>>& image, int windowSize) {      int width = image.size();      int height = image[0].size();      std::vector<std::vector<int>> result(width, std::vector<int>(height));        for (int i = 0; i < width; i++) {          for (int j = 0; j < height; j++) {              int sum = 0;              for (int k = -windowSize / 2; k <= windowSize / 2; k++) {                  for (int l = -windowSize / 2; l <= windowSize / 2; l++) {                      sum += image[i + k][j + l];                  }              }              result[i][j] = sum / (windowSize * windowSize);          }      }      return result;  }

二、高斯濾波

高斯濾波是一種基于高斯函數(shù)的濾波方法,它通過將鄰域內(nèi)的像素值或數(shù)據(jù)值乘以高斯函數(shù),然后對(duì)結(jié)果進(jìn)行加權(quán)平均得到輸出。高斯濾波對(duì)于去除噪聲和增強(qiáng)信號(hào)都有很好的效果,特別是在處理圖像邊緣時(shí)能夠更好地保留細(xì)節(jié)。但是,高斯濾波也存在一些問題,例如對(duì)于非高斯分布的噪聲效果可能不理想。swl28資訊網(wǎng)——每日最新資訊28at.com

以下是C++實(shí)現(xiàn)高斯濾波的代碼示例:swl28資訊網(wǎng)——每日最新資訊28at.com

#include <iostream>  #include <opencv2/opencv.hpp>    using namespace std;  using namespace cv;    int main() {      Mat image = imread("image.jpg"); // 讀取圖像      if (image.empty()) {          cout << "Could not read the image." << endl;          return 1;      }        int windowSize = 5; // 濾波器窗口大小      double sigmaX = 1.0; // X方向的標(biāo)準(zhǔn)差      double sigmaY = 1.0; // Y方向的標(biāo)準(zhǔn)差      Mat kernel = getGaussianKernel(windowSize, sigmaX, sigmaY); // 獲取高斯核        Mat smoothedImage = image.clone(); // 創(chuàng)建輸出圖像副本      filter2D(image, smoothedImage, -1, kernel); // 對(duì)圖像進(jìn)行濾波        namedWindow("Original Image", WINDOW_NORMAL); // 創(chuàng)建窗口      imshow("Original Image", image); // 顯示原始圖像        namedWindow("Smoothed Image", WINDOW_NORMAL); // 創(chuàng)建窗口      imshow("Smoothed Image", smoothedImage); // 顯示平滑后的圖像        waitKey(0); // 等待按鍵事件      return 0;  }

三、中值濾波

中值濾波是一種非線性信號(hào)處理技術(shù),它通過將濾波器窗口內(nèi)的像素值或數(shù)據(jù)值按大小排序,然后取中間值作為輸出。對(duì)于噪聲,由于其隨機(jī)性,往往使得其在窗口內(nèi)的值與其它數(shù)據(jù)值相差較大,因此中值濾波能夠有效地去除噪聲,同時(shí)保留圖像或數(shù)據(jù)的邊緣信息。swl28資訊網(wǎng)——每日最新資訊28at.com

以下是C++實(shí)現(xiàn)中值濾波的代碼示例:swl28資訊網(wǎng)——每日最新資訊28at.com

#include <vector>  #include <algorithm>    void medianFilter(std::vector<std::vector<int>>& image, int windowSize) {      int width = image.size();      int height = image[0].size();      std::vector<std::vector<int>> result(width, std::vector<int>(height));        for (int i = 0; i < width; i++) {          for (int j = 0; j < height; j++) {              std::vector<int> window(image.begin() + i - windowSize / 2, image.begin() + i + windowSize / 2 + 1);              std::sort(window.begin(), window.end());              result[i][j] = window[window.size() / 2]; // 取中間值作為輸出結(jié)果          }      }      return result;  }

優(yōu)劣勢(shì)比較:swl28資訊網(wǎng)——每日最新資訊28at.com

均值濾波、高斯濾波和中值濾波各有其優(yōu)劣勢(shì)。均值濾波的主要優(yōu)勢(shì)在于其簡(jiǎn)單性和對(duì)于均勻分布噪聲的去除效果;然而,它可能會(huì)導(dǎo)致圖像變得模糊,特別是在邊緣部分。高斯濾波則可以更好地保留圖像邊緣信息,因?yàn)槠浠诟咚购瘮?shù)進(jìn)行加權(quán)平均;但是,對(duì)于非高斯分布的噪聲效果可能不理想。中值濾波對(duì)于去除脈沖噪聲和椒鹽噪聲非常有效,同時(shí)能夠較好地保留圖像邊緣信息;然而,相對(duì)于前兩者,中值濾波的計(jì)算量較大。因此,在實(shí)際應(yīng)用中需要根據(jù)具體需求和場(chǎng)景選擇合適的濾波方法。swl28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-15569-0.html用C++實(shí)現(xiàn)圖像處理中三種常見的濾波算法

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: SpringCloud有哪些負(fù)載均衡策略?

下一篇: 在 Go 中使用接口進(jìn)行靈活緩存

標(biāo)簽:
  • 熱門焦點(diǎn)
  • 紅魔電競(jìng)平板評(píng)測(cè):大屏幕硬實(shí)力

    前言:三年的疫情因?yàn)橐暇W(wǎng)課的原因激活了平板市場(chǎng),如今網(wǎng)課的時(shí)代已經(jīng)過去,大家的生活都恢復(fù)到了正軌,這也就意味著,真正考驗(yàn)平板電腦生存的環(huán)境來了。也就是面對(duì)著這種殘酷的
  • 得物效率前端微應(yīng)用推進(jìn)過程與思考

    一、背景效率工程隨著業(yè)務(wù)的發(fā)展,組織規(guī)模的擴(kuò)大,越來越多的企業(yè)開始意識(shí)到協(xié)作效率對(duì)于企業(yè)團(tuán)隊(duì)的重要性,甚至是決定其在某個(gè)行業(yè)競(jìng)爭(zhēng)中突圍的關(guān)鍵,是企業(yè)長(zhǎng)久生存的根本。得物
  • 微信語音大揭秘:為什么禁止轉(zhuǎn)發(fā)?

    大家好,我是你們的小米。今天,我要和大家聊一個(gè)有趣的話題:為什么微信語音不可以轉(zhuǎn)發(fā)?這是一個(gè)我們經(jīng)常在日常使用中遇到的問題,也是一個(gè)讓很多人好奇的問題。讓我們一起來揭開這
  • 網(wǎng)紅炒股不為了賺錢,那就是耍流氓!

    來源:首席商業(yè)評(píng)論6月26日高調(diào)宣布入市,網(wǎng)絡(luò)名嘴大v胡錫進(jìn)居然進(jìn)軍了股市。在一次財(cái)經(jīng)媒體峰會(huì)上,幾個(gè)財(cái)經(jīng)圈媒體大佬就&ldquo;胡錫進(jìn)炒股是否知道認(rèn)真報(bào)道&rdquo;展開討論。有
  • 華為Mate 60系列用上可變靈動(dòng)島:正式版體驗(yàn)將會(huì)更出色

    這段時(shí)間以來,關(guān)于華為新旗艦的爆料日漸密集。據(jù)此前多方爆料,今年華為將開始恢復(fù)一年雙旗艦戰(zhàn)略,除上半年推出的P60系列外,往年下半年的Mate系列也將
  • 國行版三星Galaxy Z Fold5/Z Flip5發(fā)布 售價(jià)7499元起

    2023年8月3日,三星電子舉行Galaxy新品中國發(fā)布會(huì),正式在國內(nèi)推出了新一代折疊屏智能手機(jī)三星Galaxy Z Fold5與Galaxy Z Flip5,以及三星Galaxy Tab S9
  • 三星Galaxy Z Fold5官方渲染圖曝光:13.4mm折疊厚度依舊感人

    據(jù)官方此前宣布,三星將于7月26日在韓國首爾舉辦Unpacked活動(dòng),屆時(shí)將帶來帶來包括Galaxy Buds 3、Galaxy Watch 6、Galaxy Tab S9、Galaxy Z Flip 5、
  • 蘋果140W USB-C充電器:采用氮化鎵技術(shù)

    據(jù)10 月 30 日 9to5 Mac 消息報(bào)道,當(dāng)蘋果推出新的 MacBook Pro 2021 時(shí),該公司還推出了新的 140W USB-C 充電器,附贈(zèng)在 MacBook Pro 16 英寸機(jī)型的盒子里,也支
  • SN570 NVMe SSD固態(tài)硬盤 價(jià)格與性能兼具

    SN570 NVMe SSD固態(tài)硬盤是西部數(shù)據(jù)發(fā)布的最新一代WD Blue系列的固態(tài)硬盤,不僅閃存技術(shù)更為精進(jìn),性能也得到了進(jìn)一步的躍升。WD Blue SN570 NVMe SSD的包裝外
Top 主站蜘蛛池模板: 甘泉县| 双鸭山市| 罗田县| 田林县| 孝昌县| 炎陵县| 宜春市| 永川市| 麻阳| 翁源县| 东至县| 南郑县| 张家港市| 彰化市| 新巴尔虎右旗| 华池县| 建德市| 南郑县| 阳高县| 常德市| 岳池县| 墨玉县| 乌审旗| 淄博市| 武宣县| 汶川县| 纳雍县| 隆子县| 宾川县| 万州区| 濮阳市| 明星| 白朗县| 富宁县| 淮滨县| 湟中县| 上杭县| 东乌| 深圳市| 旅游| 贵溪市|