vb.net 实现高斯滤波中值滤波均值滤波的一种 需求vb.net程序,实现对图像的滤波处理,以上任意一种均可

vb.net 实现高斯滤波中值滤波均值滤波的一种 需求vb.net程序,实现对图像的滤波处理,以上任意一种均可,第1张

'中值滤波:

Dim x As Integer, y As Integer, size As Integer = 3, point(8) As Integer

For x = CInt((size - 1) / 2) To CInt(jpgImage.Width - 1 - (size - 1) / 2)

For y = CInt((size - 1) / 2) To CInt(jpgImage.Height - 1 - (size - 1) / 2)

point(0) = jpgImage.GetPixel(x - 1, y - 1).R

point(1) = jpgImage.GetPixel(x - 1, y).R

point(2) = jpgImage.GetPixel(x - 1, y + 1).R

point(3) = jpgImage.GetPixel(x, y - 1).R

point(4) = jpgImage.GetPixel(x, y).R

point(5) = jpgImage.GetPixel(x, y + 1).R

point(6) = jpgImage.GetPixel(x + 1, y - 1).R

point(7) = jpgImage.GetPixel(x + 1, y).R

point(8) = jpgImage.GetPixel(x + 1, y + 1).R

Array.Sort(point)

jpgImage.SetPixel(x, y, Color.FromArgb(point(4), point(4), point(4)))

Next

Next

晕 还有找快速傅立叶变换的

这个哥们博客有很多相关的

这个好像可以进行FFT和IFFT

前几天刚考完数字信号处理 学的这个晕啊

呵呵

这个是FFT的

*模块********************************************************

'FFT0 数组下标以0开始 FFT1 数组下标以1开始

'AR() 数据实部 AI() 数据虚部

'N 数据点数,为2的整数次幂

'NI 变换方向 1为正变换,-1为反变换

'***************************************************************

Public Const Pi = 3.1415926

Public Function FFT0(AR() As Double, AI() As Double, N As Integer, ni As Integer)

Dim i As Integer, j As Integer, k As Integer, L As Integer, M As Integer

Dim IP As Integer, LE As Integer

Dim L1 As Integer, N1 As Integer, N2 As Integer

Dim SN As Double, TR As Double, TI As Double, WR As Double, WI As Double

Dim UR As Double, UI As Double, US As Double

M = NTOM(N)

N2 = N / 2

N1 = N - 1

SN = ni

j = 1

For i = 1 To N1

If i <j Then

TR = AR(j - 1)

AR(j - 1) = AR(i - 1)

AR(i - 1) = TR

TI = AI(j - 1)

AI(j - 1) = AI(i - 1)

AI(i - 1) = TI

End If

k = N2

While (k <j)

j = j - k

k = k / 2

Wend

j = j + k

Next i

For L = 1 To M

LE = 2 ^ L

L1 = LE / 2

UR = 1#

UI = 0#

WR = Cos(Pi / L1)

WI = SN * Sin(Pi / L1)

For j = 1 To L1

For i = j To N Step LE

IP = i + L1

TR = AR(IP - 1) * UR - AI(IP - 1) * UI

TI = AI(IP - 1) * UR + AR(IP - 1) * UI

AR(IP - 1) = AR(i - 1) - TR

AI(IP - 1) = AI(i - 1) - TI

AR(i - 1) = AR(i - 1) + TR

AI(i - 1) = AI(i - 1) + TI

Next i

US = UR

UR = US * WR - UI * WI

UI = UI * WR + US * WI

Next j

Next L

If SN <>-1 Then

For i = 1 To N

AR(i - 1) = AR(i - 1) / N

AI(i - 1) = AI(i - 1) / N

Next i

End If

End Function

Public Function FFT1(AR() As Double, AI() As Double, N As Integer, ni As Integer)

Dim i As Integer, j As Integer, k As Integer, L As Integer, M As Integer

Dim IP As Integer, LE As Integer

Dim L1 As Integer, N1 As Integer, N2 As Integer

Dim SN As Double, TR As Double, TI As Double, WR As Double, WI As Double

Dim UR As Double, UI As Double, US As Double

M = NTOM(N)

N2 = N / 2

N1 = N - 1

SN = ni

j = 1

For i = 1 To N1

If i <j Then

TR = AR(j)

AR(j) = AR(i)

AR(i) = TR

TI = AI(j)

AI(j) = AI(i)

AI(i) = TI

End If

k = N2

While (k <j)

j = j - k

k = k / 2

Wend

j = j + k

Next i

For L = 1 To M

LE = 2 ^ L

L1 = LE / 2

UR = 1#

UI = 0#

WR = Cos(Pi / L1)

WI = SN * Sin(Pi / L1)

For j = 1 To L1

For i = j To N Step LE

IP = i + L1

TR = AR(IP) * UR - AI(IP) * UI

TI = AI(IP) * UR + AR(IP) * UI

AR(IP) = AR(i) - TR

AI(IP) = AI(i) - TI

AR(i) = AR(i) + TR

AI(i) = AI(i) + TI

Next i

US = UR

UR = US * WR - UI * WI

UI = UI * WR + US * WI

Next j

Next L

If SN <>-1 Then

For i = 1 To N

AR(i) = AR(i) / N

AI(i) = AI(i) / N

Next i

End If

End Function

Private Function NTOM(N As Integer) As Integer

Dim ND As Double

ND = N

NTOM = 0

While (ND >1)

ND = ND / 2

NTOM = NTOM + 1

Wend

End Function

'*使用**********

Const fftIn = 128

Dim i As Integer

Dim xr(128) As Double

Dim xi(128) As Double

'赋值,IaIn(i)是采得的数据。

For i = 0 To 128

xr(i) = 100 * IaIn(i)

xi(i) = 0

Next

'FFT变换

Call FFT0(xr(), xi(), 128, 1)

'绘图

picI_FFT.Scale (0, 100)-(fftIn - 1, -10)

picI_FFT.DrawWidth = 2

For i = 0 To fftIn - 1

picI_FFT.Line (i, Abs(xr(i)))-(i + 1, Abs(xr(i + 1))), vbBlue

Next i


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/11551631.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存