[Python] Mean Filtering

Oke pada artikel kali ini saya akan sedikit banyak membahas tentang mean filtering pada sebuah citra berwarna from scratch menggunakan Python dan OpenCV serta Numpy. Oke langsung saja seperti ini kurang lebih contoh kodingan yang saya buat. Kodingan ini so far jalan mulus dalam beberapa kasus, namun masih ada masalah. Coba temukan masalahnya 😀

__author__ = 'yuitaarumsari'
import cv2
import numpy as np

img = cv2.imread('kucing-Scotish.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cv2.imshow("output",gray)


height, width = gray.shape
print height, width

def replaceValue(a,b,mask_size):
    filtergray = 0.0;
    for i in range(mask_size+a)[a:]:
        for j in range(mask_size+b)[b:]:
            filtergray = filtergray + gray[i,j]
    filtergray_ = filtergray/(mask_size*mask_size)
    return filtergray_

def meanFiltering(mask_size):
    newImage = np.zeros((height-2, width-2), np.float32)
    for i in range(height-2):
        for j in range(width-2):
            newValue = replaceValue(i,j,mask_size)
            # print newValue
            newImage[i,j] = newValue
    img = np.array(newImage, dtype=np.uint8)
    print newImage
    return img

if __name__ == '__main__':
    # replaceValue(0,0,5) #this line just for testing replaceValue method
    filterImage = meanFiltering(3)
    cv2.imshow("Mean Filtering", filterImage)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

Keluaran dari hasil eksekusi kode di atas seperti di bawah ini:

Kucing lucu (Sumber: Google)

Oke selamat mencoba ya, terutama untuk mahasiswi saya, Indri! Semoga bermanfaat! 🙂

@Malang. Gedung H1.5

[Python] Membuat Garis Grid Di Atas Gambar Berwarna

Akhir-akhir ini baru buka lagi yang namanya Python untuk mengerjakan penelitian, instead of Matlab. Sangat bisa dibilang kalau saya newbie untuk menggunakan Python. Kalau ditanya apakah pernah ngoding sebelumnya dengan Python. Jawabannya sudah, saat kuliah di WUT Polandia dulu pada mata kuliah Adaptive Image Recognition, namun bukan building from scratch. Jadi, kalau disuruh ngoding dari awal, tetap butuh buka kamus-kamus perkodingan yang concern dengan Python dan OpenCV. Mengapa OpenCV? Well, kita sekarang bermain mengenai image processing, dan openCV adalah salah satu modul dari Python untuk mengolah gambar.

Kali ini saya ingin membuat garis grid (kotak-kotak) dengan ukuran grid yang telah ditentukan. Berikut adalah contoh output yang saya inginkan.

thickness = 0

thickness = 0

thickness = 2

thickness = 2

Untuk melihat gambar secara keseluruhan, silakan scroll ke atas dan keb awah juga ke samping kiri dan kanan

Dan berikut adalah barisan kode Python Continue reading

[Python] Menambahkan Multiple Legend pada Kondisi Looping

Well, setelah sekian lama hanya posting jalan-jalan saja, sekarang boleh lah ya sedikit kembali ke peradaban 😀 . Tak terasa sudah 8 bulan lebih saya tidak posting mengenai hal-hal yang berbau pemrograman. Terkait pemrograman, biasanya posting masalah sederhana yang ada di Java atau Matlab, ya jujur saja dua bahasa pemrograman itu yang saya geluti dalam kurun waktu tahunan. Sementara bahasa pemrograman yang lain hanya dipelajari kalau saat ada tugas kuliah atau saat workshop, dll. Python adalah hal baru buat saya, katakanlah saya belum pernah building application menggunakan Python from scratch, terakhir menggunakan saat workshop Google Cloud Developer Day namun itupun tak banyak, tak ada seujung jari.

Langsung masuk ke topik masalah, sebenernya apa yang saya posting adalah hal atau kendala yang saya alami, yang kadang butuh waktu buat atik atik. Jadi saya punya masalah untuk memberi legend di dalam sebuah plot. Sebenarnya sederhana, yang menjadi agak kurang sederhana karena legend ini berada dalam looping. Saya utak-atik berdasarkan referensi yang sudah saya cantumkan di bawah. Keadaanya saya ingin membuat multiple legend itu di pojok kanan bawah, sebenarnya mau dimana saja gakpapa sih, kalau lihat hasil output plot lebih enak dipandang kalau diletakkan di pojok kanan bawah 😀

Sebelum memulai saya pastikan bahwa kita akan menggunakan modul matplotlib, dan saya menggunakan barisan perintah ini untuk memanfaatkan fungsi plot, yang kemudian diberi nama variabel plt.

import matplotlib.pyplot as plt

Percobaan Pertama

Dalam percobaan pertama ini saya mencoba meletakkan nama legend (name) di dalam loop. Ternyata meskipun sudah ada dalam loop, legend tidak bisa tampil berulang dan yang terbaca adalah nama legend di looping paling akhir. Akhirnya saya coba ke Percobaan Kedua.

for name,lindx,sr_list in r_list:
        plt.plot(lindx,sr_list,ccode[i])
        plt.legend([name], loc='lower right')
        i = (i+1)%len(cname)
        plt.xlabel('Dimension')
        plt.ylabel('Success Rate')
    plt.show()

Screen Shot 2015-05-21 at 11.03.26 pm

Percobaan Kedua

Pada Percobaan Kedua ini Continue reading