日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

高效快速中值滤波算法c语言,快速中值滤波及c语言实现.docx

發(fā)布時間:2023/12/1 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 高效快速中值滤波算法c语言,快速中值滤波及c语言实现.docx 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

.

..

快速中值濾波及c語言實現(xiàn)

學生姓名: 劉 勇 學 號: 6100410218 專業(yè)班級: 數(shù)媒101

【摘要】本文討論了用c語言在微機上實現(xiàn)中值濾波及快速算法,在程序設計的過程中充分考慮到程序運行的時間復雜度和空間復雜度的問題.解決了由于圖像太大而內(nèi)存不夠的問題,運用對程序運行時的方法,得出在PENTIUM-S100MHz上中值濾渡的一般算法運行4.23秒.而快速算法運行2 58秒。

【關(guān)鍵詞】c語言;中值濾波;快速算法

1 引言

中值濾波是涂基發(fā)明的一種非線性信號處理技術(shù),對抑制圖像的噪聲非常有效,在二維形式下,中值濾渡器是一個古有奇數(shù)個像素的滑動窗口,窗口正中的象素的灰度值用窗口內(nèi)各個象素的中值代替窗口的中值為窗口中象素按大小順序排列后處于中間位置的象素;本文討論中值濾的一般算法并比較其運算速度。

2 用C語言實現(xiàn)算法的若干問題

在設計算法編制程序的時候,我們充分考慮到程序運行的時間復雜度和空間復雜度問題,在解決問

題的前提下,使算法盡量簡單,使程序運行占有的空間盡量的小,這樣來減少不必要的時問浪費和空間浪費,從而太大的提高程序執(zhí)行的效率。

首先考慮到的內(nèi)存問題。由于在本文算法中用的圖像是512+512 8bit,這就存在一個內(nèi)存不夠大一整幅圖像不能一次性調(diào)入的問題。為了解受此問題,可以只開辟一個3"512的緩沖區(qū)n,將原圖像采用分批調(diào)入緩沖區(qū),使內(nèi)存不夠的問題得到了圓滿的解決。

另外為了對中值濾波的快速算法和普通算法進行精確的比較,采用對程序運行計時的方法,并精確計算每個算法運行的時間,使得出的結(jié)論更可靠。

3 中值濾波算法的C語言程序?qū)崿F(xiàn)

本算法采用對開辟的3*512的緩沖區(qū)從左到右依次形成一個3*3的窗口.然后將此3*3的窗口放

人一個一維數(shù)組中,調(diào)用求中值子函數(shù).通過排序得出中值,當此中值不等于窗口中間位置的象素時.用此中值來代替窗VI中間位置的象素灰度值.若此緩沖區(qū)處理完畢后,將緩沖區(qū)的第一行存入新建的文件中,將第二、第三行分別向上移動一行,若存人新建的文件中的行數(shù)小于或等于511(即這樣處理的行

數(shù)小于或等于511),則從原文件中調(diào)入一行作為緩沖區(qū)第三行,按上述方法進行直到處理的總行數(shù)等于511為止,最后,將緩沖區(qū)的第二、三行存人新建的文件,程序流程框圖如圖1

4 中值濾波快速算法的C語言程序?qū)崿F(xiàn)

本算法充分利用了上一次處理的結(jié)果.采用迭代,逐次逼近的方法得到本次的中值,在一行處理完畢后轉(zhuǎn)人下一行也采用走S型的方法.這樣除第一個窗口采用了一伏排序得到中值外,其它的窗口都利

用上伏的窗口的象素刪除無用的3個象素后再加人新的3個象素,利用迭代的方法得到本次窗口的中值.這樣太大地提高了程序執(zhí)行的效率。

4.1算法的解釋

首先是開辟一個3*512的緩沖區(qū)a,在初始化緩沖區(qū)時考慮到時間復雜度的問題,所以只初始化了第二、三行,而對第一行只初始化了前三個象素,這樣便在緩沖區(qū)中可以得到一個3*3的窗口,對此窗口進行排序求中值后得出第一個窗口的中間象素的值.將文件指針定位在2*512處。然后開始循環(huán),當處理的行數(shù)小于或等于511時,將緩沖區(qū)a中的第二、三行分別向上移動一行變?yōu)榈谝弧⒍?#xff0c;從文件中讀人512個字節(jié)作為緩沖區(qū)的第三行,并用行數(shù)模2的方法設置方向標志k.當k為0時,從左向右移動窗口.當k為1時.從右向左移動窗口.而每一窗口都利用上次的窗口的像素刪除無用的3個象素后再加入新的3個象素.利用迭代的方法從上次的中值得到本次的中值。當處理完一行后將緩沖區(qū)的第一行存入新建的文件中,最后將緩沖區(qū)的第二、三行存入文件中。

4.2 算法代碼

// ImageProcessingDoc.cpp : implementation of the CImageProcessingDoc class

//

#include "stdafx.h"

#include "ImageProcessing.h"

#include "ImageProcessingDoc.h"

#include "GreyRatio.h"

#include

#define PI (acos(0.0) * 2)

#ifdef _DEBUG

#define new DEBUG_NEW

#undef THIS_FILE

static char THIS_FILE[] = __FILE__;

#endif

/

// CImageProcessingDoc

IMPLEMENT_DYNCREATE(CImageProcessingDoc, CD

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結(jié)

以上是生活随笔為你收集整理的高效快速中值滤波算法c语言,快速中值滤波及c语言实现.docx的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。