Tuesday, December 23, 2014

Library untuk mengolah data sinyal format wav di python



Kamu yang sering menggeluti pengolahan sinyal digital! Ada baiknya mempertimbangkan library dari Scikits.audiolab dengan melibatkan matplotlib sungguh kombinasi yang menarik di python. Berikut adalah contoh untuk membaca file wav dan menampilkan di figure

Code



#kasus untuk membaca file wav
from scikits import audiolab
from  matplotlib import pyplot as plt
[x, fs, nbBits] = audiolab.wavread('D:/tiga.wav')
plt.figure('contoh membaca format wav - www.softscients.we.id')
plt.plot(x)
plt.title('grafik sinyal')
plt.show()       
 

kamu bisa donwload di http://www.softscients.web.id/2014/12/dependecy-library-di-python.html

Buku Pemrograman Python - Serialisasi dan deserialisasi Data


Seiring dengan meningkatnya traffic dan kemudahan dalam mengelola content, kami mengucapkan banyak terima kasih kepada para pembaca setia pada blog www.softscients.web.id

Per 19 Maret 2020, kami sedang melakukan migrasi ke domain dan hosting yang lebih baik yaitu
Semoga dengan alamat domain dan hosting terbaru akan semakin memudahkan para pembaca dalam mencari materi/content. Migrasi dilakukan secara bertahap yang membutuhkan waktu yang cukup lama jadi jangan kuatir selama migrasi akan dilakukan secara hati-hati untuk memimalkan broken link


kalian bisa lanjut baca lagi di http://softscients.com/2020/03/28/buku-pemrograman-python-serialisasi-dan-deserialisasi-data/




Sinopsis

Bekerja dengan melibatkan banyak data seperti algoritma computer vision, machine learning yang harus disimpan variabelnya kedalam sebuah disk. Kasus yang melibatkan type data bersifat multidimensi seperti misalkan pada kasus machine learning yang menghasilkan sebuah bobot dalam bentuk matrix,  hal ini tentu akan menyulitkan jika disimpan dalam bentuk database relational, tentu kita harus menyiapkan type data berupa struct, array, dan lainnya. Dalam python hal tersebut bisa menggunakan pickle (kalau di Matlab kalian bisa simpan data dalam format *.mat).

Mengenai Pickle

Ada beberapa catatan penting mengenai pickle

  1. In Python 2, you can speed up your pickle access with cPickle. (In Python3, importing pickle will automatically use the accelerated version if it is available.)
  2. Kamu bisa menggunakan pickle ataupun cPickle. Tapi ingat, ketika menerima data berformat biner (serialisasi di python) sebuah dari jaringan, kamu harus hati-hati karena bisa juga berisikan kode jahat! Pickle files can be hacked. If you receive a raw pickle file over the network, don't trust it! It could have malicious code in it, that would run arbitrary python when you try to de-pickle it.
Disini tidak membahas mengenai pickle akan tetapi menggunakan pickle untuk menyimpan sebuah data. Oiya kalian bisa belajar dari buku pemrograman python dengan package opensource

Contoh Pickle



#tutorial untuk serialisasi dan deserialisasi
import pickle as pc
import numpy as np

print '\n' *100 #bersihkan layar

a = np.array([[1,2,3],[4,5,6]]);

fileName = 'D:/data.objek'
fileObj = open(fileName,'wb')
pc.dump(a,fileObj)

fileObj.close()

fileObj2 = open(fileName,'r') #kalian bisa set rb, jika mode nya read binary
b = pc.load(fileObj2)
print 'data b ', b     
 



Kasus diatas, penulis menggunakan library numpy sebagai contoh saja yaitu untuk menulis dan membaca kembali lagi, tentu itu kasus kecil, kamu bisa menyimpan sebuah class atau object yang lainnya dalam python. Jadi kalian tidak perlu kuatir lagi menyimpan data/objek di Python.

Referensi

  1. https://freepythontips.wordpress.com/2013/08/02/what-is-pickle-in-python/
  2. http://www.diveintopython3.net/serializing.html
  3. http://pymotw.com/2/pickle/

Sunday, December 21, 2014

Library Excel yang Bagus untuk C#

Ngomong-ngomong format data tabel pasti tidak lepas dengan aplikasi buatan microsoft yaitu Excel, nah bagi kalian yang sedang membutuhkan pustaka untuk melakukan export data ke dalam format excel, kebetulan setelah searching kesana kemari, sampailah didapatkan www.epplus.codeplex.com yang powerfull sekali. Kamu bisa melihat cara kerja library untuk write seperti berikut

Thursday, December 11, 2014

Sunday, December 7, 2014

dependecy library di python

[softscients - dependecy library di python] Python menawarkan banyak kemudahan dalam mengembangkan sebuah aplikasi, pengembangan algoritma, bahkan banyak sekali library/modul yang telah disediakan oleh para pengembang!

Tuesday, December 2, 2014

Membuat Studio Mini – Black Box

Studio mini yang dimaksud dalam posting kali ini adalah tempat yang dikondisikan baik sumber cahaya, warna background dinding samping-bawah yang dapat diatur sedimikian rupa pada proses pengambilan gambar. 

Tools Alternatif selain matlab



[softcients - Tools Alternatif selain matlab] Sudah sangat populer sekali matlab digunakan dalam dunia komputasi teknis, entah itu versi crack yang digunakan atau versi lainnya, dengan kemudian function built in yang dibungkus oleh toolbox mulai dari 

Friday, November 21, 2014

Algoritma Manber untuk Deteksi Plagiarisme



[www.softscients.web.idAlgoritma Manber untuk Deteksi Plagiarisme ] Dunia digital telah menawarkan kemudahan proses BAJAK atau juga bisa sering disebut plagiat! Karena begitu mudah dan cepatnya format digital tersebut di copy pastekan, tentu ada caranya yaitu algoritma mendeteksi plagiarisme dengan menggunakan algoritma Manber. Algoritma ini menggunakan beberapa langkah yang sangat mudah. Langkah nya sebagai berikut

Wednesday, November 12, 2014

Teknik penentuan Core Point Sidik Jari

[www.softscients.web.idTeknik penentuan Core Point Sidik Jari]Tahap awal yang ‘agak’ lumayan penting dalam teknik pengenalan sidik jari adalah menentukan lokasi corepoint nya! Ibarat dalam pengenalan wajah, maka harus tahu terlebih dahulu lokasi hidung, mata, mulut.  Nah berikut salah satu contoh citra sidik jari

Friday, November 7, 2014

Simulasi Monte Carlo

[www.softscients.web.id -  Cara cepat Simulasi Monte CarloSimulasi Monte Carlo adalah percobaan elemen kemungkinan dengan menggunakan sampel random (acak). Simulasi monte carlo digunakan dengan mensimulasikan keadaan sistem yang memiliki ketidakpastian dengan jumlah percobaan yang sangat besar. Dengan jumlah percobaan yang besar, 

Wednesday, November 5, 2014

Cara Menggunakan Fitur Debugging di Visual Studio


Proses pengembangan / implementasi sebuah algoritma perlu adanya crosscheck hasil, biasanya dalam proses unit bisnis yang besar akan dipecah dalam function/method yang lebih kecil lagi. Proses pengujian function/method bisa menggunakan fasilitas debug atau langsung cetak hasil nya di ouput. 

Friday, October 17, 2014

Penentuan Rotasi Citra Sidik jari



Ideal adalah kata yang selalu diinginkan untuk segala penerapan algoritma, mulai dari ideal bentuk nya, resolusi nya, letak nya. Misalka berikut adalah citra sidik jari yang sangat ideal yaitu jelas minuteae, letak center, tidak terjadi rotasi!

Tapi bandingkan dengan yang ini!
 




Blur, tergradasi dan yang paling menjengkelkan adalah mengapa miring??
Anda saja mereka tahu bahwa operasi finger recognition yang lumayan penting adalah core point dan sebaik nya tidak terjadi kemiringan, tapi ya sudahlah, rupanya kita butuh teknik ehancement dan teknik rotasi citra untuk membuat menjadi ideal. Penulis telah membahas sebelum nya mengenai teknik enhancement menggunakan teknik normalisasi, sedangkan pada kasus ini yaitu teknik mererotasi kembali agar tidak terjadi kemiringan. Berikut contoh penerapan dari operasi tersebut


Teknik Enhancement Normalisasi Citra


Seiring dengan meningkatnya traffic dan kemudahan dalam mengelola content, kami mengucapkan banyak terima kasih kepada para pembaca setia pada blog www.softscients.web.id

Per 19 Maret 2020, kami sedang melakukan migrasi ke domain dan hosting yang lebih baik yaitu
Semoga dengan alamat domain dan hosting terbaru akan semakin memudahkan para pembaca dalam mencari materi/content. Migrasi dilakukan secara bertahap yang membutuhkan waktu yang cukup lama jadi jangan kuatir selama migrasi akan dilakukan secara hati-hati untuk memimalkan broken link


kalian bisa lanjut baca lagi di  http://softscients.com/2020/03/27/buku-pengolahan-citra-digital-dengan-java-normalisasi-citra/




Hal pertama yang harus dilakukan dalam teknik finger code recognition adalah perbaikancitra sidik jarifinger enhancement yaitu memperbaiki kualitas citra. Seringkali mungkin kadangkalanya, kita akan mengolah suatu citra yang tidak bagus kualitasnya, entah karena ada noise, blur seperti berikut



Citra diatas tentu tergolong input yang bagus, tapi dibagian tepi masih terdapat derau, pencahayaan nya yang kurang optimal. Untuk menghasilkan kualitas citra yang bagus, perlu teknik normalisasi citra yaitu 


M0 dan V0 yang digunakan yaitu 100, Kemudian penulis sarankan kepada kalian untuk melakukan teknik perataan histogram dan faktor pengali setelah menggunakan teknik diatas yaitu

Penggunaan faktor = 2.5

Hasil_final = histeq(uint8(G*faktor))
Sebaiknya faktor pengali yaitu 2.4-2.6 saja, hasil nya seperti berikut



Penggunaan faktor = 2.3

Kemudian diperbaiki dengan faktor = 2.5 menjadi berikut


 
Terlihat bahwa teknik normalisasi citra akan menghasilkan citra yang siap digunakan untuk proses selanjut nya, jangan lupa kalian harus add path Java Image nya terlebih dahulu

import java.awt.image.BufferedImage;
import java.io.File;
import jimag.Image;
import jimag.ImageRead;
import jimag.ImageShow;
import jimag.ext.ImageNormalization;

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author mulkan.ms@gmail.com
 */
public class DemoImageNormalization {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        // TODO code application logic here
        BufferedImage image = ImageRead.read(new File("D:/sidik jari.jpg"));        
          
        //convert ke gray
        double [][] gray = Image.rgb2gray(ImageRead.getMatrix(image));
        
       
        
        double M = 50;
        double Var = 100;
        double K = 2.4;
        ImageNormalization normalisasiCitra = new ImageNormalization(gray,M,Var,K); //proses normalisasi gambar

        new ImageShow(image,"original").setVisible(true);
        
        new ImageShow(Image.matrix2image(normalisasiCitra.getResult()),"Normalisasi Citra").setVisible(true);

    }
    
}