Python has capability to get information of every pixel of an image an save it as array. With that, we can modify an image with unlimited posibility. To be able to used this features, we have to import a module named Image (we must install PIL first). There is no Python2.7's PIL module on My Mac OS X Lion yet.

 Here's some result from my Snow Leopard using Python2.5.

The image below is original image that'll be processed to black and white, negative, log and gamma transformation
From Blogsy Photos


Here's the code (ignore the comments, I used it for paper several years ago )

print 'Program Image Enchancement'
print 'Oleh Nugroho Adi Pramono'
print '==========================='
'''Komentar diantara tiga-tanda petik tidak akan dibaca
oleh python'''
#komentar setelah tanda pagar juga tidak di baca oleh python
import Image        #memanggil modul untuk olah gambar
import os,sys       #memanggil modul untuk mengakses file
import numpy as np  #memanggil modul untuk operasi matematika matrik/array
gb = Image.open('gambar.jpg')                   #memasukkan gambar ke variabel gb
print 'format awal: ' ,gb.format, "%dx%d" % gb.size, gb.mode
print 'konversi ke grayscale'
gbw = gb.convert("L")
gbw.save('gambarBW.jpg')                #simpan hasil konversi ddg nama gambarBW.jpg
gbw = Image.open('gambarBW.jpg')        #masukkan gambar grayscale hasil konversi ke variabel gbw
print 'format: ',gbw.format, "%dx%d" % gbw.size, gbw.mode
ukuran=gbw.size                         #mengambil nilai resolusi gambar
'''buat array r dan s berukuran sama dengan ukuran gambar'''
r=np.zeros((ukuran[0],ukuran[1]),dtype=np.integer)
s=np.zeros((ukuran[0],ukuran[1]),dtype=np.integer)
print 'Mengambil nilai piksel, masukkan ke array r'
for i in range (ukuran[0]):
    for j in range (ukuran[1]):
        r[i,j]=gbw.getpixel((i,j))

print 'Mengolah gambar: Image Negatives'
s=np.add(255,-r)        #kurangi 255 dengan setiap elemen array r, hasilnya masukkan ke array s
for i in range (ukuran[0]):
    for j in range (ukuran[1]):
        gbw.putpixel((i,j),s[i,j])      #letakkan pixel yang telah dimodifikasi ke posisi i,j
print 'Menyimpan gambar negative'
gbw.save('gambarNegative.jpg')          #simpan dengan nama gambarNegative.jpg
print 'Gambar negative tersimpan'

print 'Mengolah gambar: Log Transformation'
s=100*np.log10(1+r)     #c=100
for i in range (ukuran[0]):
    for j in range (ukuran[1]):
        gbw.putpixel((i,j),s[i,j])      #letakkan pixel yang telah dimodifikasi ke posisi i,j
print 'Menyimpan gambar hasil Log Transformation'
gbw.save('gambarLog.jpg')               #simpan dengan nama gambarLog.jpg
print 'Gambar hasil Log Transformation tersimpan'

print 'Mengolah gambar: Power-law Transformations, Gamma=0,6'
s=np.power(r,0.6)       #c=1 gamma=0.6
for i in range (ukuran[0]):
    for j in range (ukuran[1]):
        gbw.putpixel((i,j),s[i,j])      #letakkan pixel yang telah dimodifikasi ke posisi i,j
print 'Menyimpan gambar hasil Power-Law Transformation'
gbw.save('gambarPowGamma0p6.jpg')       #simpan dengan nama gambarPowGamma0p6.jpg
print 'Gambar hasil Power-Law Transformation tersimpan'

print 'Mengolah gambar: Power-law Transformations, Gamma=2,5'
s=np.power(r,2.5)       #c=1 gamma=2.5
for i in range (ukuran[0]):
    for j in range (ukuran[1]):
        gbw.putpixel((i,j),s[i,j])      #letakkan pixel yang telah dimodifikasi ke posisi i,j
print 'Menyimpan gambar hasil Power-Law Transformation'
gbw.save('gambarPowGamma2p5.jpg')       #simpan dengan nama gambarPowgamma2p5
print 'Gambar hasil Power-Law Transformation tersimpan'

print 'Program Selesai'
Here the result

Black and White
From Blogsy Photos
Log
From Blogsy Photos
Negative Image
From Blogsy Photos
Gamma
From Blogsy Photos
From Blogsy Photos
0

Add a comment

Layang Kangen

via IFTTT
Sing Sing Sing

via IFTTT
Layang Kangen.
Rayuan Pulau Kelapa.
Birama ganjil di pagi hari, 😁.
Manuk Dadali

via IFTTT
Killing Me Softly

via IFTTT
Tears in Heaven.
Happy...
Ritual Drummer Normal saat ingin memainkan set drum saya.
Uptown Funk.
Let It Go. Versi Idina Menzel.
Tuntun Kan Ku Dalam Damai. Lagu mas Mamat.
Dapat hadiah lomba joget, 😁

via IFTTT
Cicilan lagu baru mas Mamat, 😁

via IFTTT
Mulai mengisi, 😁

via IFTTT
Can’t Help Falling in Love with You.
Lilin-lilin Kecil

via IFTTT
Viva la Vida

via IFTTT
Belum punya energi untuk menambah part bass/keyboard, 😁

via IFTTT
Can’t help falling in love with you.
Let It Go

via IFTTT
Bojo Galak, 😁

via IFTTT
Let It Go.
Dan

via IFTTT
Ku Tak Bisa

via IFTTT
Walang Ireng.
Wonderful Tonight

via IFTTT
Balada rekaman per-track, 😁

via IFTTT
Tentang Kita.
What a Wonderful World.
See You Again.
Akad.
Untuk Perempuan yang Sedang dalam Pelukan.
Si Pemalas dan Si Pemula. Menabrak semua aturan, 😁.
Archive
Label
Popular Posts
Popular Posts
Loading