Home » » Pengolahan Citra

Pengolahan Citra



Didalam Pengolahan Citra ada bermacam macam jenis seperti pada contoh dibawah ini :


1.DEFAULT GAMBAR

2. GRAYSCALE

3. NEGATIF

4. BRIGTHNESS

5. BINER

6. SMOOTHING

7. CONTRAST

8. ROTATE 180

9. ROTATE 90

10. INVERSI



Berikut Listing Program dan Tampilannya :



Public Class Form1

    Dim gambar As Bitmap



    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load



        Pic2.Image = Pic1.Image

    End Sub





    Private Sub OpenCitraToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OpenCitraToolStripMenuItem.Click

        OFD.Filter = "BMP|*.bmp|JPG|*.Jpg"

        OFD.ShowDialog()



        If OFD.FileName = "" Then Exit Sub

        Pic1.Image = Image.FromFile(OFD.FileName)

        gambar = New Bitmap(Pic1.Image)

    End Sub



    Private Sub SaveCitraToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SaveCitraToolStripMenuItem.Click

        SFD.Filter = "JPG|*.Jpg|BMP|*.bmp"

        SFD.ShowDialog()

        If SFD.FileName = "" Then Exit Sub



        If SFD.FilterIndex = 1 Then

            gambar.Save(SFD.FileName, System.Drawing.Imaging.ImageFormat.Jpeg)

        End If



        If SFD.FilterIndex = 2 Then

            gambar.Save(SFD.FileName, System.Drawing.Imaging.ImageFormat.Bmp)



        End If

    End Sub



Private Sub DefaultGambarToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DefaultGambarToolStripMenuItem.Click

        gambar = New Bitmap(Pic1.Image)



    End Sub





    Private Sub KeluarToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles KeluarToolStripMenuItem.Click

        End

    End Sub

Tampilannya : 



2. GRAYSCALE


    Private Sub GrayscaleToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GrayscaleToolStripMenuItem.Click

        Dim Pb, Pc As Integer

        Dim Rt, vM, vH, vB As Double

        With gambar

            For Pb = 0 To .Height - 1

                For Pc = 0 To .Width - 1

                    vM = .GetPixel(Pc, Pb).R

                    vH = .GetPixel(Pc, Pb).G

                    vB = .GetPixel(Pc, Pb).B

                    Rt = (vM + vH + vB) / 3

                    .SetPixel(Pc, Pb, Color.FromArgb(Rt, Rt, Rt))



                Next

                Pic2.Image = gambar

                Pic2.Refresh()



            Next

        End With

    End Sub

Tampilannya : 



3. NEGATIF


    Private Sub NegatifToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NegatifToolStripMenuItem.Click

        Dim Pb, Pc As Integer

        Dim vM, vH, vB As Double

        With gambar

            For Pb = 0 To .Height - 1

                For Pc = 0 To .Width - 1

                    vM = 255 - .GetPixel(Pc, Pb).R

                    vH = 255 - .GetPixel(Pc, Pb).G

                    vB = 255 - .GetPixel(Pc, Pb).B

                    If vM <= 0 Then vM = 0

                    If vB <= 0 Then vB = 0

                    If vH <= 0 Then vH = 0

                    .SetPixel(Pc, Pb, Color.FromArgb(vM, vH, vB))





                Next

                Pic2.Image = gambar

                Pic2.Refresh()



            Next

        End With

    End Sub
  

Tampilannya : 



4. BRIGTHNESS


    Private Sub BrigthnessToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BrigthnessToolStripMenuItem.Click

        Dim pb, pc As Integer

        Dim vM, vH, vB As Double

        With gambar

            For pb = 0 To .Height - 1

                For pc = 0 To .Width - 1

                    vM = .GetPixel(pc, pb).R + 5

                    vH = .GetPixel(pc, pb).G + 5

                    vB = .GetPixel(pc, pb).B + 5

                    If vM > 255 Then vM = 255

                    If vB > 255 Then vB = 255

                    If vH > 255 Then vH = 255

                    .SetPixel(pc, pb, Color.FromArgb(vM, vH, vB))

                Next

                Pic2.Image = gambar

                Pic2.Refresh()

            Next

        End With

    End Sub

Tampilannya : 



5. BINER



    Private Sub BinerToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BinerToolStripMenuItem.Click

        Dim Pb, Pc As Integer

        Dim rata, vM, vH, vB As Double

        With gambar

            For Pb = 0 To .Height - 1

                For Pc = 0 To .Width - 1

                    vM = .GetPixel(Pc, Pb).R

                    vH = .GetPixel(Pc, Pb).G

                    vB = .GetPixel(Pc, Pb).B

                    rata = (vM + vH + vB) / 3

                    If (rata < 128) Then

                        vM = 0

                        vH = 0

                        vB = 0

                    Else

                        vM = 255

                        vH = 255

                        vB = 255



                    End If

                    .SetPixel(Pc, Pb, Color.FromArgb(vM, vH, vB))



                Next

                Pic2.Image = gambar

                Pic2.Refresh()



            Next

        End With

    End Sub
  

Tampilannya : 



6. SMOOTHING


    Private Sub SmooToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SmooToolStripMenuItem.Click

        Dim MF(2, 2) As Double



        'MaskFilter.Show()

        'matriks Filter

        '  0 1 2

        '0 a b c

        '1 d e f

        '2 g h i



        'Filter smoothing

        MF(0, 0) = 1 / 9 'a

        MF(0, 1) = 1 / 9 'b

        MF(0, 2) = 1 / 9 'c



        MF(1, 0) = 1 / 9 'd

        MF(1, 1) = 1 / 9 'e

        MF(1, 2) = 1 / 9 'f



        MF(2, 0) = 1 / 9 'g

        MF(2, 1) = 1 / 9 'h

        MF(2, 2) = 1 / 9 'i



        gambar = New Bitmap(Pic1.Image)

        Pic2.Image = gambar

        Dim tempbmp As New Bitmap(Pic1.Image)

        Dim DX As Integer = 1

        Dim DY As Integer = 1

        Dim Red As Integer, Green As Integer, Blue As Integer



        With gambar

            For i = DX To .Height - DX - 1

                For j = DY To .Width - DY - 1

                    'proses matriks filter

                    'point(j,i)*e --> titik tengah

                    Red = CInt(.GetPixel(j, i).R) * MF(1, 1)

                    Green = CInt(.GetPixel(j, i).G) * MF(1, 1)

                    Blue = CInt(.GetPixel(j, i).B) * MF(1, 1)

                    'proses titik tetangga

                    'point(j-1,i-1)*a--> MF(0,0)--> titik kiri atas

                    If j - 1 < 1 And i - 1 < 1 Then 'jika out of border ambil nilai tengah/point(x,y)

                        Red = Red + (CInt(.GetPixel(j, i).R) * MF(0, 0))

                        Green = Green + (CInt(.GetPixel(j, i).G) * MF(0, 0))

                        Blue = Blue + (CInt(.GetPixel(j, i).B) * MF(0, 0))

                    Else

                        Red = Red + (CInt(.GetPixel(j - 1, i - 1).R) * MF(0, 0))

                        Green = Green + (CInt(.GetPixel(j - 1, i - 1).G) * MF(0, 0))

                        Blue = Blue + (CInt(.GetPixel(j - 1, i - 1).B) * MF(0, 0))

                    End If

                    'point(j,i-1)*b --> MF(0,1) --> titik atas

                    If i - 1 < 1 Then 'jika out of border ambil nilai tengah/point(x,y)

                        Red = Red + (CInt(.GetPixel(j, i).R) * MF(0, 1))

                        Green = Green + (CInt(.GetPixel(j, i).G) * MF(0, 1))

                        Blue = Blue + (CInt(.GetPixel(j, i).B) * MF(0, 1))

                    Else

                        Red = Red + (CInt(.GetPixel(j, i - 1).R) * MF(0, 1))

                        Green = Green + (CInt(.GetPixel(j, i - 1).G) * MF(0, 1))

                        Blue = Blue + (CInt(.GetPixel(j, i - 1).B) * MF(0, 1))

                    End If

                    'point(j+1,i-1)*c --> MF(0,2) --> titik kanan atas

                    If j + 1 > .Width - DY - 1 And i - 1 > 1 Then 'jika out of border ambil nilai tengah/point(x,y)

                        Red = Red + (CInt(.GetPixel(j, i).R) * MF(0, 2))

                        Green = Green + (CInt(.GetPixel(j, i).G) * MF(0, 2))

                        Blue = Blue + (CInt(.GetPixel(j, i).B) * MF(0, 2))

                    Else

                        Red = Red + (CInt(.GetPixel(j + 1, i - 1).R) * MF(0, 2))

                        Green = Green + (CInt(.GetPixel(j + 1, i - 1).G) * MF(0, 2))

                        Blue = Blue + (CInt(.GetPixel(j + 1, i - 1).B) * MF(0, 2))

                    End If

                    'point(j-1,i)*d --> MF(1,0) --> titik kiri

                    If j - 1 < 1 Then 'jika out of border ambil nilai tengah/point(x,y)

                        Red = Red + (CInt(.GetPixel(j, i).R) * MF(1, 0))

                        Green = Green + (CInt(.GetPixel(j, i).G) * MF(1, 0))

                        Blue = Blue + (CInt(.GetPixel(j, i).B) * MF(1, 0))

                    Else

                        Red = Red + (CInt(.GetPixel(j - 1, i).R) * MF(1, 0))

                        Green = Green + (CInt(.GetPixel(j - 1, i).G) * MF(1, 0))

                        Blue = Blue + (CInt(.GetPixel(j - 1, i).B) * MF(1, 0))

                    End If

                    'point(j+1,i)*f --> MF(1,2) --> titik kanan

                    If j + 1 > .Width - DY - 1 Then 'jika out of border ambil nilai tengah/point(x,y)

                        Red = Red + (CInt(.GetPixel(j, i).R) * MF(1, 2))

                        Green = Green + (CInt(.GetPixel(j, i).G) * MF(1, 2))

                        Blue = Blue + (CInt(.GetPixel(j, i).B) * MF(1, 2))

                    Else

                        Red = Red + (CInt(.GetPixel(j + 1, i).R) * MF(1, 2))

                        Green = Green + (CInt(.GetPixel(j + 1, i).G) * MF(1, 2))

                        Blue = Blue + (CInt(.GetPixel(j + 1, i).B) * MF(1, 2))

                    End If

                    'point(j-1,i+1)*g --> MF(2,0) --> titik kiri bawah

                    If j - 1 < 1 And i + 1 > .Height - DX - 1 Then 'jika out of border ambil nilai tengah/point(x,y)

                        Red = Red + (CInt(.GetPixel(j, i).R) * MF(2, 0))

                        Green = Green + (CInt(.GetPixel(j, i).G) * MF(2, 0))

                        Blue = Blue + (CInt(.GetPixel(j, i).B) * MF(2, 0))

                    Else

                        Red = Red + (CInt(.GetPixel(j - 1, i + 1).R) * MF(2, 0))

                        Green = Green + (CInt(.GetPixel(j - 1, i + 1).G) * MF(2, 0))

                        Blue = Blue + (CInt(.GetPixel(j - 1, i + 1).B) * MF(2, 0))

                    End If

                    'point(j,i+1)*g --> MF(2,1) --> titik bawah

                    If i + 1 > .Height - DX - 1 Then 'jika out of border ambil nilai tengah/point(x,y)

                        Red = Red + (CInt(.GetPixel(j, i).R) * MF(2, 1))

                        Green = Green + (CInt(.GetPixel(j, i).G) * MF(2, 1))

                        Blue = Blue + (CInt(.GetPixel(j, i).B) * MF(2, 1))

                    Else

                        Red = Red + (CInt(.GetPixel(j, i + 1).R) * MF(2, 1))

                        Green = Green + (CInt(.GetPixel(j, i + 1).G) * MF(2, 1))

                        Blue = Blue + (CInt(.GetPixel(j, i + 1).B) * MF(2, 1))

                    End If

                    'point(j+1,i+1)*h --> MF(2,2) --> titik kanan bawah

                    If j + 1 > .Width - DY - 1 And i + 1 > .Height - DX - 1 Then 'jika out of border ambil nilai tengah/point(x,y)

                        Red = Red + (CInt(.GetPixel(j, i).R) * MF(2, 2))

                        Green = Green + (CInt(.GetPixel(j, i).G) * MF(2, 2))

                        Blue = Blue + (CInt(.GetPixel(j, i).B) * MF(2, 2))

                    Else

                        Red = Red + (CInt(.GetPixel(j + 1, i + 1).R) * MF(2, 2))

                        Green = Green + (CInt(.GetPixel(j + 1, i + 1).G) * MF(2, 2))

                        Blue = Blue + (CInt(.GetPixel(j + 1, i + 1).B) * MF(2, 2))

                    End If

                    'normalisasi

                    If Red < 0 Then

                        Red = 0

                    Else

                        If Red > 255 Then

                            Red = 255

                        End If

                    End If

                    If Green < 0 Then

                        Green = 0

                    Else

                        If Green > 255 Then

                            Green = 255

                        End If

                    End If

                    If Blue < 0 Then

                        Blue = 0

                    Else

                        If Blue > 255 Then

                            Blue = 255

                        End If

                    End If



                    'simpan warna hasil smoothing ke point j,i

                    gambar.SetPixel(j, i, Color.FromArgb(Red, Green, Blue))

                Next

                If i Mod 10 = 0 Then

                    Pic1.Invalidate()

                    Me.Text = Int(100 * i / (Pic1.Image.Height - 2)).ToString & "%"

                    Pic1.Refresh()

                End If

            Next

        End With

        Pic1.Refresh()

        Me.Text = "Proses Smoothing Image berhasil"



    End Sub

                                   Tampilannya :



7. CONTRAST


     Private Sub ContrastToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ContrastToolStripMenuItem.Click

        gambar = New Bitmap(Pic1.Image)

        Pic2.Image = gambar

        Dim tempbmp As New Bitmap(Pic1.Image)

        Dim DX As Integer = 1

        Dim DY As Integer = 1

        Dim Red, Green, Blue As Integer

        Dim X, Y As Integer

        Dim tc As Integer

        tc = 5



        With tempbmp

            For X = DX To .Height - DX - 1

                For Y = DY To .Width - DY - 1

                    Red = CInt(.GetPixel(Y, X).R)

                    Green = CInt(.GetPixel(Y, X).G)

                    Blue = CInt(.GetPixel(Y, X).B)

                    'Grey = (Red + Green + Blue) / 3 'konversi warna pada pixel Y,X ke grey

                    Red = Red * tc

                    Blue = Blue * tc

                    Green = Green * tc

                    If (Red > 255) Then

                        Red = 255

                    End If

                    If (Blue > 255) Then

                        Blue = 255

                    End If

                    If (Green > 255) Then

                        Green = 255

                    End If

                    gambar.SetPixel(Y, X, Color.FromArgb(Red, Green, Blue))

                Next

                If X Mod 10 = 0 Then

                    Pic1.Invalidate()

                    Pic2.Refresh()

                End If

            Next

        End With



    End Sub
  

                                    Tampilannya : 


8. ROTATE 180


    Private Sub Rotate180ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Rotate180ToolStripMenuItem.Click

        Dim pb, pc As Integer

        Dim vM, vH, vB As Double

        Dim gambar3 As Bitmap = New Bitmap(Pic1.Image)

        With gambar

            For pb = .Height - 1 To 0 Step -1

                For pc = .Width - 1 To 0 Step -1

                    vM = .GetPixel(pc, pb).R

                    vH = .GetPixel(pc, pb).G

                    vB = .GetPixel(pc, pb).B

                    gambar3.SetPixel(.Width - 1 - pc, .Height - 1 - pb, Color.FromArgb(vM, vH, vB))

                Next

                Pic2.Image = gambar3

                Pic2.Refresh()

            Next

        End With



    End Sub
  
 Tampilannya :



9. ROTATE 90

    Private Sub Rotate90ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Rotate90ToolStripMenuItem.Click
        Dim rgb As Image
        rgb = Pic2.Image
        If rgb IsNot Nothing Then rgb.RotateFlip(RotateFlipType.Rotate90FlipXY)
        Pic2.Image = rgb

    End Sub


  Tampilannya :




10. INVERSI

    Private Sub InversiToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles InversiToolStripMenuItem.Click
        Dim inVal As Object

        inVal = InputBox("Berapa Bit ? ", "Inversi", "8")

        If inVal <> "" Then
            gambar = New Bitmap(Pic1.Image) 'Gambar asli dijadikan gambar Bitmap
            Pic2.Image = gambar
            Dim tempbmp As New Bitmap(Pic1.Image) 'deklarasi gambar Bitmap dari gambar asli untuk diproses
            Dim DX As Integer = 1
            Dim DY As Integer = 1
            Dim mBit, Red As Integer, Green As Integer, Blue As Integer, Grey As Integer
            Dim X, Y As Integer
            mBit = CInt(inVal)
            With tempbmp
                For X = DX To .Height - DX - 1
                    For Y = DY To .Width - DY - 1
                        Red = CInt((Math.Pow(2, mBit) - 1)) - CInt(.GetPixel(Y, X).R) 'ambil nilai warna merah (Red) pada pixel(Y,X)
                        Green = CInt((Math.Pow(2, mBit) - 1)) - CInt(.GetPixel(Y, X).G) 'ambil nilai warna hijau (Green) pada pixel(Y,X)
                        Blue = CInt((Math.Pow(2, mBit) - 1)) - CInt(.GetPixel(Y, X).B) 'ambil nilai warna biru (Blue) pada pixel(Y,X)

                        If (Red > 255) Then
                            Red = 255
                        Else
                            If Red < 0 Then
                                Red = 0
                            End If
                        End If

                        If Green > 255 Then
                            Green = 255
                        Else
                            If Green < 0 Then
                                Green = 0
                            End If
                        End If

                        If Blue > 255 Then
                            Blue = 255
                        Else
                            If Blue < 0 Then
                                Blue = 0
                            End If
                        End If

                        gambar.SetPixel(Y, X, Color.FromArgb(Red, Green, Blue)) 'simpan warna baru pada pixel(Y,X)
                    Next
                    If X Mod 10 = 0 Then
                        Pic1.Invalidate()
                        Pic1.Refresh()
                    End If
                Next
            End With

            Pic1.Refresh()
            Me.Text = "Pengolahan Citra : Proses Inversi Scale berhasil"
        End If

    End Sub
End Class
  


Tampilannya :



Tugas SI-P1101


3 komentar:

  1. Numpang Lewat yah min...

    Hanya Di OPPOPOKER

    Bonus New Member....
    Deposit 15.000 - 49.999 = Bonus nya 10.000
    Deposit 50.000 - 99.999 = Bonus nya 15.000
    Deposit 100.000 Ke atas = Bonus nya 20.000

    BalasHapus
  2. HANYA DI KENARI POKER BANYAK BONUSNYA BOSSKU
    Bonus Welcome Untuk New Member:
    - Bagi deposit Rp.10,000 - Rp.14,999 Bonus Rp.5.000
    - Bagi deposit Rp.15,000 - Rp.24,999 Bonus Rp.10.000
    - Bagi deposit Rp.25,000 - Rp.49,999 Bonus Rp.15.000
    - Bagi deposit Rp.50,000 - Rp.99,999 Bonus Rp.20.000
    - Bagi deposit Rp.100,000 ke atas Bonus Rp.25.000s
    - Bonus next deposit 5% untuk deposit Rp.50.000
    REAL PLAYER VS PLAYER !!!

    Syarat Klaim bonus yaitu menghubungi CS kami di
    WHATSAPP : +855966139323, +85585426330
    BBM : KENARI00
    LIVE CHAT : KENARIPOKER . COM
    ALTERNATIVE LINK : KENARIPOKER . COM

    BalasHapus