當前位置:首頁 > 智能硬件 > 人工智能AI
[導讀]   均值濾波   均值濾波是典型的線性濾波算法,它是指在圖像上對目標像素給一個模板,該模板包括了其周圍的臨近像素(以目標像素為中心的周圍個像素,構(gòu)成一個濾波模板,即去掉目標像素本身),再

  均值濾波

  均值濾波是典型的線性濾波算法,它是指在圖像上對目標像素給一個模板,該模板包括了其周圍的臨近像素(以目標像素為中心的周圍個像素,構(gòu)成一個濾波模板,即去掉目標像素本身),再用模板中的全體像素的平均值來代替原來像素值。

  均值濾波也稱為線性濾波,其采用的主要方法為鄰域平均法。線性濾波的基本原理是用均值代替原圖像中的各個像素值,即對待處理的當前像素點(x,y),選擇一個模板,該模板由其近鄰的若干像素組成,求模板中所有像素的均值,再把該均值賦予當前像素點(x,y),作為處理后圖像在該點上的灰度g(x,y),即g(x,y)=/m ∑f(x,y) m為該模板中包含當前像素在內(nèi)的像素總個數(shù)。

  均值濾波介紹

  濾波是濾波是將信號中特定波段頻率濾除的操作,是從含有干擾的接收信號中提取有用信號的一種技術(shù)。

  均值濾波是典型的線性濾波算法,它是指在圖像上對目標像素給一個模板,該模板包括了其周圍的臨近像素(如&TImes;模板:以目標象素為中心的周圍個象素,構(gòu)成一個濾波模板,即去掉目標象素本身),再用模板中的全體像素的平均值來代替原來像素值。

  均值濾波效果:平滑線性濾波處理降低了圖像的“尖銳”變化。由于典型的隨機噪聲由灰度級的急劇變化組成,因此常見的平滑處理的應(yīng)用就是降低噪聲。均值濾波器的主要應(yīng)用是去除圖像中的不相關(guān)細節(jié),其中“不相關(guān)”是指與濾波器模板尺寸相比較小的像素區(qū)域。然而,由于圖像的邊緣也是由圖像灰度的尖銳變化帶來的特性,所以均值濾波處理還是存在著邊緣模糊的負面效應(yīng)。

  均值濾波算法實現(xiàn)(C語言)

  // junzhilvbo.cpp : 定義控制臺應(yīng)用程序的入口點。

  //

  #include “stdafx.h”

  #include “stdlib.h”

  #include “string.h”

  #define DATA_X //數(shù)字圖像水平像素個數(shù)

  #define DATA_Y //數(shù)字圖像豎直像素個數(shù)

  void OpenFile(const char *cFilePath , int nOriginalData[DATA_Y][DATA_X])

  {

  printf(“正在獲取數(shù)據(jù)。。。。。。 ”);

  FILE *fp ;

  fp = fopen(cFilePath , “r”);

  if(NULL == fp)

  {

  printf(“open file failed! ”);

  return ;

  }

  unsigned char *pData = (unsigned char *)malloc(sizeof(unsigned char)*DATA_X*DATA_Y);

  if(NULL == pData)

  {

  printf(“memory malloc failed! ”);

  return ;

  }

  fread(pData , sizeof(unsigned char)*DATA_X*DATA_Y , , fp);

  int count_x = ;

  int count_y = ;

  for(;count_y 《 DATA_Y ; count_y++)

  {

  for(; count_x 《 DATA_X ;count_x++)

  {

  nOriginalData[count_y][count_x] = pData[count_y*DATA_Y+count_x];

  }

  }

  free(pData);

  fclose(fp);

  return ;

  }

  void SaveFile(const char *cFilePath , int nResultData[DATA_Y][DATA_X])

  {

  printf(“正在保存數(shù)據(jù)。。。。。。 ”);

  int count_x,count_y;

  FILE *fp ;

  fp = fopen(cFilePath , “w”);

  if(NULL == fp)

  {

  printf(“open file failed! ”);

  return ;

  }

  for(count_y=;count_y《DATA_Y;count_y++)

  {

  for(count_x=;count_x《DATA_X;count_x++)

  {

  fwrite(&nResultData[count_y][count_x],,,fp);

  }

  }

  fclose(fp);

  printf(“文件保存成功! ”);

  return ;

  }

  bool JunZhiLvBo(const int nOriginalData[DATA_Y][DATA_X], int nResultData[DATA_Y][DATA_X])

  {

  printf(“正在進行均值濾波。。。。。。 ”);

  int count_x ,count_y ;

  /**模版濾波計算,不計算邊緣像素*/

  for(count_y = ; count_y 《 DATA_Y ; count_y++)

  {

  for(count_x = ; count_x 《 DATA_X ;count_x++)

  {

  nResultData[count_y][count_x] = (int)((nOriginalData[count_y-][count_x-]+

  nOriginalData[count_y-][count_x] +

  nOriginalData[count_y-][count_x+]+

  nOriginalData[count_y][count_x-] +

  nOriginalData[count_y][count_x] +

  nOriginalData[count_y][count_x+] +

  nOriginalData[count_y+][count_x-]+

  nOriginalData[count_y+][count_x] +

  nOriginalData[count_y+][count_x+])/);

  }

  }

  /*對四個邊緣直接進行賦值處理*/

  for(count_x=;count_x《DATA_X;count_x++) //水平邊緣像素等于原來像素灰度值

  {

  nResultData[][count_x]=nOriginalData[][count_x];

  nResultData[DATA_Y-][count_x]=nOriginalData[DATA_Y-][count_x];

  }

  for(count_y=;count_y《DATA_Y-;count_y++) //豎直邊緣像素等于原來像素灰度值

  {

  nResultData[count_y][]=nOriginalData[count_y][];

  nResultData[count_y][DATA_X-]=nOriginalData[count_y][DATA_X-];

  }

  return true ;

  }

  int _tmain(int argc, _TCHAR* argv[])

  {

  int nOriginalData[DATA_Y][DATA_X]; //保存原始圖像灰度值

  int nResultData[DATA_Y][DATA_X]; //保存濾波后的灰度值

  memset(nOriginalData,,sizeof(nOriginalData)); //初始化數(shù)組

  memset(nResultData,,sizeof(nResultData));

  char cOpenFilePath[] = “Lena.raw”; //圖像文件路徑

  OpenFile(cOpenFilePath,nOriginalData);

  if(!JunZhiLvBo(nOriginalData,nResultData)) //濾波計算

  {

  printf(“操作失??! ”);

  return ;

  }

  char cSaveFilePath[] = “Result.raw”; //文件保存路徑

  SaveFile(cSaveFilePath,nResultData);

  return ;

  }

  均值濾波算法效果對比

  均值濾波之前: 均值濾波之后:

  

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉