43 lines
1.1 KiB
Plaintext
43 lines
1.1 KiB
Plaintext
Const ancho = 208
|
|
Const alto = 228
|
|
|
|
Dim TamImag(ancho - 1, alto - 1, 2) As Integer
|
|
|
|
Screenres ancho, alto, 32
|
|
|
|
Bload "i:\Lena.bmp", 0
|
|
|
|
Dim As Integer filter(2, 2) => {{-1, -1, -1}, {-1, 12, -1}, {-1, -1, -1}}
|
|
|
|
Dim As Integer y, x, i, j, r, g, b, c, f
|
|
For y = 1 To alto - 2
|
|
For x = 1 To ancho - 2
|
|
r = 0 : g = 0 : b = 0
|
|
For i = -1 To 1
|
|
For j = -1 To 1
|
|
c = Point(x + i, y + j)
|
|
f = filter(i + 1, j + 1)
|
|
r += f * (c And &HFF)
|
|
g += f * ((c Shr 8) And &HFF)
|
|
b += f * ((c Shr 16) And &HFF)
|
|
Next j
|
|
Next i
|
|
If r < 0 Then r = 0 Else If r > 1020 Then r = 1020
|
|
If g < 0 Then g = 0 Else If g > 1020 Then g = 1020
|
|
If b < 0 Then b = 0 Else If b > 1020 Then b = 1020
|
|
TamImag(x, y, 0) = r \ 4
|
|
TamImag(x, y, 1) = g \ 4
|
|
TamImag(x, y, 2) = b \ 4
|
|
Next x
|
|
Next y
|
|
|
|
For y = 0 To alto - 1
|
|
For x = 0 To ancho - 1
|
|
Pset (x, y), Rgb(TamImag(x, y, 0), TamImag(x, y, 1), TamImag(x, y, 2))
|
|
Next x
|
|
Next y
|
|
|
|
Bsave "i:\LenaConvolution.bmp", 0
|
|
|
|
Sleep
|