Let Us C , C++ , VB , JAVA , .NET , SQL By Aaditya

Lets Learn Programming Languages Through Example. Doing and Learning is best. I will weekly guide you on Each Topic of Each Programming Language. Feel free to leave comment or ask questions on C, C++, Java, Visual Basic, .NET (ASP, ADO, C#), on Web programming or SQL (Oracle)

Monday, November 5, 2007

Programs For Medical Image Processing in Visual Basic 6

Edge Detection By Prewitts -------------


Private Sub Command1_Click()
Picture1.ScaleMode = 3
Picture2.ScaleMode = 3
Picture3.ScaleMode = 3
Picture4.ScaleMode = 3
Dim a(256, 256) As Long
Dim b(256, 256) As Long
Dim c(256, 256) As Long
Dim d(256, 256) As Long
Dim l, f As Long
For i = 0 To 256
For j = 0 To 256
a(i, j) = Picture1.Point(i, j)
Next j
Next i
For i = 1 To 253
For j = 1 To 253
l = 0
f = 0
' X direction
For k = i To i
For m = j To j + 2
l = l + a(i + 2, m)
f = f + a(i, m)
Next m
b(i + 1, j + 1) = Abs(l - f)
Next k
l = 0
f = 0
'Y direction
For k = i To i + 2
For m = j To j
l = l + a(k, j + 2)
f = f + a(k, j)
Next m
c(i + 1, j + 1) = Abs(l - f)
Next k
Next j
Next i
'X-Y Direction
For i = 1 To 256
For j = 1 To 256
d(i, j) = b(i, j) + c(i, j)
Next j
Next i
For i = 0 To 256
For j = 0 To 256
Picture2.PSet (i, j), b(i, j)
Picture3.PSet (i, j), c(i, j)
Picture4.PSet (i, j), d(i, j)
Next j
Next i
End Sub


Edge Detection By Sobel -------------



Private Sub Command1_Click()
Dim a(256, 256) As Long
Dim b(256, 256) As Long
Dim c(256, 256) As Long
Dim d(256, 256) As Long
Dim a1(256, 256) As Long
Dim a2(256, 256) As Long
Dim a3(256, 256) As Long
Dim l, f As Long
Picture1.ScaleMode = 3
Picture2.ScaleMode = 3
Picture3.ScaleMode = 3
Picture4.ScaleMode = 3
For i = 0 To 256
For j = 0 To 256
a(i, j) = Picture1.Point(i, j)
Next j
Next i
For i = 1 To 250
For j = 1 To 250
l = 0
f = 0
' x direction
l = a(i + 2, j) + 2 * a(i + 2, j + 1) + a(i + 2, j + 2)
'MsgBox (f)
f = a(i, j) + 2 * a(i, j + 1) + a(i, j + 2)
b(i + 1, j + 1) = Abs(l - f)
Next j
Next i
For i = 1 To 253
For j = 1 To 253
l = 0
f = 0
' y direction
l = a(i, j + 2) + 2 * a(i + 1, j + 2) + a(i + 2, j + 2)
f = a(i, j) + 2 * a(i + 1, j) + a(i + 2, j)
c(i + 1, j + 1) = Abs(l - f)
Next j
Next i
For i = 1 To 256
For j = 1 To 256
d(i, j) = b(i, j) + c(i, j)
Next j
Next i
For i = 1 To 256
For j = 1 To 256
Picture2.PSet (i, j), b(i, j)
Picture3.PSet (i, j), c(i, j)
Picture4.PSet (i, j), d(i, j)
Next j
Next i
End Sub

Median Filtering----------------------






Private Sub Command1_Click()
Dim a(256, 256) As Long
Dim b(256, 256) As Long
Dim ii, jj As Integer
Dim k, m, l As Integer
Dim total, avg As Long
Dim sum(9) As Long
Dim i, j As Integer
Dim t, med As Long
Picture1.ScaleMode = 3
Picture2.ScaleMode = 3
For i = 0 To 256
For j = 0 To 256
a(i, j) = Picture1.Point(i, j)
Next j
Next i
For i = 0 To 253
For j = 0 To 253
total = 0
l = 0
For k = i To i + 2
For m = j To j + 2
l = l + 1
sum(l) = a(k, m)
total = total + sum(l)
Next m
Next k
For ii = 1 To l - 1
For jj = ii + 1 To l
If (sum(ii) > sum(jj)) Then
t = sum(ii)
sum(ii) = sum(jj)
sum(jj) = t
End If
Next jj
Next ii
med = sum(5)
For k = i To i + 2
For m = j To j + 2
If (a(k, m) < med) Then
b(k, m) = med
Else: b(k, m) = a(i, j)
End If
Next m
Next k
Next j
Next i
For i = 1 To 256
For j = 1 To 256
Picture2.PSet (i, j), b(i, j)
Next j
Next i
MsgBox ("Done")
End Sub


Average Filtering-----------------------




Private Sub Command1_Click()
Dim a(256, 256) As Long
Dim b(256, 256) As Long
Dim k, m, l As Integer
Dim total, avg As Long

Dim i, j As Integer
Picture1.ScaleMode = 3
Picture2.ScaleMode = 3
For i = 0 To 256
For j = 0 To 256
a(i, j) = Picture1.Point(i, j)
Next j
Next i
For i = 0 To 253
For j = 0 To 253
total = 0
l = 0
For k = i To i + 2
For m = j To j + 2
l = l + 1
total = total + a(k, m)
Next m
Next k
avg = total / l
For k = i To i + 2
For m = j To j + 2
If (a(k, m) < avg) Then
b(k, m) = avg
Else: b(k, m) = a(i, j)
End If
Next m
Next k
Next j
Next i
For i = 1 To 256
For j = 1 To 256
Picture2.PSet (i, j), b(i, j)
Next j
Next i
MsgBox ("Done")
End Sub



Negative --------------------------------------------




Private Sub Command1_Click()
Dim a(256, 256) As Long
Picture1.ScaleMode = 3
Picture2.ScaleMode = 3
Dim i, j As Integer
For i = 0 To 256
For j = 0 To 256
a(i, j) = Picture1.Point(i, j)
a(i, j) = 16777215 - a(i, j)
Picture2.PSet (i, j), a(i, j)
Next j
Next i
End Sub


Conversion of Image to pixel

Private Sub command1_click()
Dim a(256, 256) As Long
Picture1.ScaleMode = 3
Open "C:\Documents and Settings\student\My Documents\output.txt" For Output As #1
Dim i, j As Integer
For i = 0 To 256
For j = 0 To 256
a(i, j) = Picture1.Point(i, j)
Write #1, a(i, j)
Next j
Next i
Close #1
MsgBox ("Done")
End Sub





Conversion of pixel of image---------

Private Sub command1_click()

Dim a(256, 256) As Long
Picture1.ScaleMode = 3
Open "C:\Documents and Settings\student\My Documents\output.txt" For Input As #1
Dim i, j As Integer
For i = 0 To 256
For j = 0 To 256
Input #1, a(i, j)
Picture1.PSet (i, j), a(i, j)
Next j
Next i
Close #1
MsgBox ("Done")
End Sub