Kamis, 30 Juni 2011

TUGAS PENGGOLAHAN CITRA 2

Brightness


Brightness adalah nilai kecerahan suatu pixel dalam suatu citra, yang menunjukan tingkat kecerahan dari hitam sampai putih. Tingkat kecerahan ini biasanya dinilai dari 0 (hitam) dan 255 (putih). Berikut ini saya postingkan langkah-langkah membuat aplikasi brightness dengan visual basic.
1. Buat form VB terlebih dahulu
2. Tambahkan components Microsoft windows common controls 6.0

3. Masukan tool-tool berikut ke dalam form

TOOL
PROPERTIES
Frame
Caption : Input
Frame
Caption : Output
Picturebox
Name : picInput
Picture : foto kita sendiri
Picturebox
Name : picOutput
Slider
Name : sldLevel

tampilan form

4. Add modules dan tuliskan source code di bawah ini di dalamnya
Public Function getBrightness(cl As Long, level As Integer) As Long
//mencari nilai brightness di dalam gambar
' cl = Color wich will be brightened
' level = Brightness (between -255 and 255)

Dim r As Integer, g As Integer, b As Integer
//mencari nilai RGB
r = getRed(cl) + level
g = getGreen(cl) + level
b = getBlue(cl) + level
If r > 255 Then r = 255
If g > 255 Then g = 255
If b > 255 Then b = 255
If r < 0 Then r = 0
If g < 0 Then g = 0
If b < 0 Then b = 0
getBrightness = RGB(r, g, b)
End Function

Private Function getRed(color As Long)
//mencari nilai warna merah di dalam variable warna gambar
getRed = color And &HFF&
End Function

Private Function getGreen(color As Long)
//mencari nilai warna hijau di dalam variable warna gambar
getGreen = (color And &HFF00&) / &H100&
End Function

Private Function getBlue(color As Long)
//mencari nilai warna biru di dalam variable warna gambar
getBlue = (color And &HFF0000) / &H10000
End Function

5. Tuliskan deklarasi di bawah ini pada form1
Option Explicit
Private Declare Function SetPixel Lib "gdi32" ( _
ByVal hdc As Long, _
ByVal x As Long, _
ByVal y As Long, _
ByVal crColor As Long) As Long

Private Declare Function GetPixel Lib "gdi32" ( _
ByVal hdc As Long, _
ByVal x As Long, _
ByVal y As Long) As Long
Private m_blnAppExit As Boolean


6. Tuliskan source code perintah di bawah ini pada sldLevel
Private Sub sldLevel_Click()
m_blnAppExit = False
Dim x As Integer, y As Integer, intWidth As Integer, _
intHeight As Integer
//memperoleh panjang dan lebar gambar
intWidth = picInput.Width / Screen.TwipsPerPixelX - 3
intHeight = picInput.Height / Screen.TwipsPerPixelY - 2
picOutput.Picture = LoadPicture()
picOutput.Cls
//memperoleh setiap pixel di dalam gambar
For y = 0 To intHeight Step 1
For x = 0 To intWidth Step 1
'Get BrightValue for this pixel and (re)paint it
SetPixel _
picOutput.hdc, _
x, _
y, _
modules.getBrightness( _
GetPixel(picInput.hdc, x, y), _
sldLevel.Value)
Next
picOutput.Refresh
Next
//refresh picOutput
picOutput.Refresh
DoEvents
m_blnAppExit = True
End Sub

7. Dan hasilnya……
8. Hasilnya…………………

nilai brightness bertambah berdasarkan penambahan/pengurangan nilai level kecerahan pada setiap pixel.

SELAMAT MENCOBA

Jumat, 17 Juni 2011

TUGAS PENGGOLAHAN CITRA 1





TUGAS MENAMPILKAN GAMBAR DAN HISTOGRAM



Private Sub Form_Load()
Drive1.Drive = "d:\"
End Sub

Private Sub Dir1_Change()
File1.Path = Dir1.Path
End Sub

Private Sub Drive1_Change()
Dir1.Path = Drive1.Drive
End Sub

Private Sub File1_Click()
On Error GoTo Pesan
Picture1.Picture = LoadPicture(Dir1.Path & "\" & File1.FileName)
Pesan:
If Err.Number = 481 Then
MsgBox "Gambar tidak bisa tampil", vbOKOnly, "PERINGATAN"
End If
End Sub

Private Sub Command1_Click()
Dim hr(256) As Integer, hg(256) As Integer, hb(256) As Integer
Dim ht2 As Long
Dim xp As Integer, i As Integer, j As Integer
Dim r As Integer, g As Integer, b As Integer
Dim warna As Long, X As Long, a As Long
Picture2.Cls
Picture3.Cls
Picture4.Cls
Me.MousePointer = vbHourglass
For i = 1 To 256
hr(i) = 0
hg(i) = 0
hb(i) = 0
Next
For i = 1 To Picture1.Width Step 15
For j = 1 To Picture1.Height Step 15
warna = Picture1.Point(i, j)
r = warna And RGB(255, 0, 0)
g = Int((warna And RGB(0, 255, 0)) / 256)
b = Int(Int((warna And RGB(0, 0, 255)) / 256) / 256)
If r > 255 Then r = 255
If g > 255 Then g = 255
If b > 255 Then b = 255
hr(r) = hr(r) + 1
hg(g) = hg(g) + 1
hb(b) = hb(b) + 1
Next j
Next i
ht2 = Picture2.Height
For i = 1 To 256
xp = 15 * (i - 1) + 1
Picture2.Line (xp, ht2 - hr(i))-(xp, ht2), RGB(255, 0, 0)
Picture3.Line (xp, ht2 - hg(i))-(xp, ht2), RGB(0, 255, 0)
Picture4.Line (xp, ht2 - hb(i))-(xp, ht2), RGB(0, 0, 255)
Next i
Me.MousePointer = vbNormal
End Sub

Private Sub Command2_Click()
Unload Me
End Sub