Postingan saya saat ini aka mencoba menjabarkan sedikit codingan yang udah saya buat menggunakan library CImg. Dua fungsi yang akan dibahas yaitu graythresh dan im2bw. Nama kedua fungsi tersebut sama dengan nama fungsi yang ada di Matlab. Fungsinya juga dibuat persis dengan yang ada di Matlab. Seperti namanya im2bw adalah fungsi untuk mengubah image dari grayscale ke dalam bentuk biner dengan threshold tertentu. Threshold bisa ditentukan sesuka kita ataupun bisa ditentukan dengan menggunakan fungsi graythresh.
Algoritme untuk im2bw cukup sederhana yaitu jika nilai piksel (x,y) melebihi nilai threshold yang diberikan maka nilai piksel akan diubah menjadi 1, namu jika kurang dari/sama dengan threshold makan nilai piksel tersebut akan diset 0. Hasil dari im2bw ini merupakan image dengan format biner/logika. Tentunya jika kita men-display gambar hasil dari im2bw ini cuma akan terlihat gambar hitam-putih saja. Fungsi im2bw dengan bahasa C++ (CImg) kira-kira seperti berikut:
CImg<bool> Form1::im2bw(CImg<double> img, double thresh){Parameter masukannya ada 2, yaitu:
double temp=255*thresh;
cimg_forXY(img,x,y){
if (img(x,y)>temp)
img(x,y)=1;
else
img(x,y)=0;
}
}
1. CImg <double> img , ini adalah image yang mau kita ubah. Jika format image berupa float atau selain double, tinggal ganti aja formatnya didalam “<…>”.
2. thresh, ini threshold yang kita masukkan.
Parameter keluaranya tentu saja image dengan format biner. Tapi ga harus dengan format biner (bool), bisa juga format double atau float atau int.