Image Processing dengan Python

Aldona Septiana

Sosial Media


2 orang menyukai ini
Suka

Summary

Pemrosesan gambar atau image processing adalah suatu bidang dalam ilmu komputer yang berkaitan dengan analisis dan manipulasi gambar digital. Tujuan dari image processing adalah untuk meningkatkan kualitas gambar, mengekstraksi informasi yang berguna dari gambar, dan menghasilkan output yang bermakna berdasarkan pemrosesan yang dilakukan

Description

Portofolio ini mencakup berbagai konsep dan teknik dasar image processing dengan Python. Berbagai teknik dasar ini mencakup geometric transformations, smoothing image, image thresholding, dan morphological transformations. Geometric transformations memungkinkan untuk melakukan operasi seperti scaling, rotation, dan translation pada gambar, yang berguna untuk mengubah ukuran dan orientasi gambar. Smoothing image membantu mengurangi noise dan menghasilkan gambar yang lebih halus, sementara image thresholding digunakan untuk mengubah gambar menjadi citra biner berdasarkan ambang tertentu. Terakhir, morphological transformations seperti erosion, dilation, opening, dan closing, memungkinkan untuk memanipulasi bentuk dan struktur objek dalam gambar. Kombinasi dari teknik-teknik ini memungkinkan untuk menghasilkan hasil yang optimal dalam proses pengolahan gambar.

Berikut adalah langkah-langkah yang diterapkan dalam Image Processing

Geometric Transformation

Teknik Cropping

Teknik cropping dalam kode tersebut digunakan untuk memotong bagian tertentu dari gambar asli. Dalam contoh kode tersebut, crop = img[0:500, 100:500] digunakan untuk memotong bagian gambar dari baris ke-0 hingga baris ke-499 (500 baris) dan dari kolom ke-100 hingga kolom ke-499 (500 kolom), sehingga menghasilkan bagian gambar yang lebih kecil.

 

   

Scalling

Scaling dalam konteks pengolahan citra adalah proses mengubah ukuran gambar. Tujuannya adalah untuk memperbesar atau memperkecil gambar secara proporsional.

Pada contoh kode dibawah ini cv2.resize(img, None, fx=2, fy=2) digunakan untuk melakukan scaling gambar dengan faktor skala 2 baik untuk sumbu x (fx) maupun sumbu y (fy). Parameter None digunakan untuk menunjukkan bahwa ukuran output gambar tidak ditentukan secara eksplisit, tetapi dihitung berdasarkan faktor skala

Teknik Translation
Teknik translation dalam pengolahan citra adalah proses menggeser setiap piksel dalam gambar secara horizontal (tx) dan vertikal (ty) sesuai dengan parameter yang ditentukan. Tujuannya adalah untuk mengubah posisi relatif dari objek dalam gambar tanpa mengubah bentuk atau ukuran objek tersebut.

Teknik Rotation

Teknik rotation dalam pengolahan citra adalah proses memutar gambar sebesar sudut tertentu (dalam derajat). Tujuannya adalah untuk mengubah orientasi objek dalam gambar atau untuk memperbaiki orientasi gambar yang miring.

Pada contoh kode program yang diberikan, fungsi rotate_image digunakan untuk menerapkan rotasi pada gambar dengan sudut rotasi yang ditentukan. Langkah-langkahnya melibatkan penggunaan matriks rotasi (rotation_matrix) yang dihasilkan oleh cv2.getRotationMatrix2D() untuk memutar gambar, dan kemudian menerapkan rotasi tersebut menggunakan cv2.warpAffine().

Smoothing Images

proses mengurangi noise atau detail kecil yang tidak diinginkan dalam gambar, sehingga menghasilkan gambar yang lebih halus atau kabur. Tujuannya adalah untuk meningkatkan kualitas visual, memperbaiki kontras, atau mempersiapkan gambar untuk proses selanjutnya seperti segmentasi atau deteksi fitur.

Gaussian Filtering

Menggunakan filter Gaussian untuk mengaburkan gambar. Filter ini bekerja dengan memberikan bobot yang lebih tinggi pada piksel di sekitar piksel tengah, sehingga menciptakan efek blur yang lembut. Tujuannya adalah untuk mengurangi noise dan menjaga tepi yang tajam.

Median Filtering

Menggantikan nilai piksel dengan nilai median dari tetangga-tetangganya. Teknik ini efektif dalam menghilangkan noise impulsif (salt-and-pepper noise) tanpa mengaburkan tepi objek yang penting dalam gambar.

Bilateral filtering

Mengaburkan gambar dengan mempertimbangkan kedua jarak spasial dan perbedaan intensitas piksel. Filter ini memungkinkan penggunaan filter yang lebih lebar untuk mengurangi noise tanpa mengorbankan detail tepi.

Image Thresholding

Image thresholding adalah teknik pengolahan citra yang digunakan untuk mengubah gambar menjadi citra biner, di mana setiap piksel hanya memiliki nilai 0 (hitam) atau 255 (putih), tergantung pada apakah nilainya di atas atau di bawah ambang tertentu. Tujuannya adalah untuk memisahkan objek dari latar belakang atau untuk mengidentifikasi area tertentu dalam gambar.

Pada kode yang diberikan, terdapat beberapa teknik thresholding yang diterapkan pada gambar yang diambil dari file "pulpen.jpg" dan disimpan dalam mode grayscale. Teknik thresholding yang digunakan adalah:

THRESH_BINARY: Setiap piksel yang bernilai di atas ambang 127 akan diubah menjadi 255 (putih), sedangkan piksel di bawah ambang akan diubah menjadi 0 (hitam).

THRESH_BINARY_INV: Kebalikan dari THRESH_BINARY. Setiap piksel yang bernilai di atas ambang 127 akan diubah menjadi 0, sedangkan piksel di bawah ambang akan diubah menjadi 255.

THRESH_TRUNC: Piksel dengan nilai di atas ambang 127 akan tetap sama, sedangkan piksel di bawah ambang akan diatur menjadi ambang tersebut.

THRESH_TOZERO: Piksel dengan nilai di atas ambang 127 akan tetap sama, sedangkan piksel di bawah ambang akan diubah menjadi 0.

THRESH_TOZERO_INV: Kebalikan dari THRESH_TOZERO. Piksel dengan nilai di atas ambang 127 akan diubah menjadi 0, sedangkan piksel di bawah ambang akan tetap sama.

Morphological Transformations

Morphological transformations adalah serangkaian operasi pengolahan citra yang digunakan untuk mengubah bentuk atau struktur objek dalam gambar. Tujuannya adalah untuk memperbaiki atau memodifikasi representasi objek dalam gambar, seperti memperbaiki kesalahan atau menghilangkan noise, serta memisahkan objek yang saling terhubung.

Beberapa operasi yang umum digunakan dalam morphological transformations meliputi:

Erosi, pada operasi ini, ukuran objek diperkecil dengan mengikis sekeliling objek.

Dilasi, Operasi dilasi dilakukan untuk memperbesar ukuran segmen objek dengan menambah lapisan di sekeliling objek.

Opening, Kombinasi dari erosion diikuti oleh dilation. Digunakan untuk menghilangkan noise dan menghaluskan tepi objek.

Closing,Kombinasi dari dilation diikuti oleh erosion. Digunakan untuk mengisi celah dalam objek dan menghaluskan tepi objek.

Daftar Pustaka

[1] https://medium.com/@henriquevedoveli/geometric-transformations-in-image-processing-150b0de27c7a

[2] https://medium.com/@henriquevedoveli/image-filtering-techniques-in-image-processing-part-1-d03362fc73b7

[3] https://docs.opencv.org/3.4/d7/d4d/tutorial_py_thresholding.html

[4] https://docs.opencv.org/4.x/d9/d61/tutorial_py_morphological_ops.html

Informasi Course Terkait
  Kategori: Computer Vision
  Course: Image Processing