LabVIEW Team Indonesia

cancel
Showing results for 
Search instead for 
Did you mean: 

LabVIEW Vision Part 1: Segmentasi Warna

Salam semuanya,

Karena beberapa hari lalu ada yang bertanya soal Vision, saya akan share disini basic, tips and trick dalam aplikasi Image Processing dan Machine Vision dengan menggunakan LabVIEW.

Apa yang akan saya lakukan? Aplikasi untuk:

1. Melakukan segmentasi warna. Artinya saya hanya mau memproses warna-warna tertentu seperti merah, kuning dan hijau.

2. Melakukan Particle Analysis. Artinya, dari obyek yang saya milikki, hanya dengan luasan tertentu (satuan luas, seperti pixel2), ada max dan minnya

3. Melakukan Tracking. Artinya, dari obyek yang sudah diproses sebelumnya (segmentasi dan particle analysis), saya akan mentrack obyek yang sudah saya training

Nah dalam tutorial ini, hanya step 1 dulu yang saya kerjakan. Step berikutnya akan saya lanjutkan apabila ada yang meminta

Software Yang Diperlukan:

  1. LabVIEW 2015
  2. LabVIEW Vision Development Module (VDM) 2015
  3. Vision Acquisition Software August 2016

*ini adalah software yang saya pakai, harusnya bisa dengan versi 2014 dan 2015 namun saya tidak menjamin ya.

Vision Assistant 2015:

Kenapa menggunakan Vision Assistant? Karena mudah dan cepat. Saya bukan fans dari Express VI (Vision Assistant ini adalah Express VI), tapi keuntungannya adalah, Script dari Vision Assistant ini dapat generate code menjadi LabVIEW! Bahkan bisa juga untuk code lain seperti C, VB.NET dan LabVIEW FPGA (lebih keren lagi).

Oke, kita mulai dulu dengan step berikut ini:

1. Membuka Vision Assistant 2016:

Bisa ditemukan pada All Programs>>National Instruments>>Vision>>Vision Assistant 2015 (32-bit)

sc1.pngsc2.png

2. Sekarang, Buka Image Sebagai Referensi

Dicontoh saya, buka image pada folder Image>>gambar1.png

Karena gambarnya besar, resolusi 1920x1080, maka gunakan Zoom to Fit.

sc3.pngsc4.png

3. Color Image Threshold

sc5.png

Gambar yang saya milikki ini adalah gambar berwarna (color). Artinya, secara dasar, gambar tersebut memilikki 3-dimensi data. Satu dimensi adalah R (Red), satu dimensi adalah G (Green) dan satu dimensi lagi adalah B (Blue), atau pendeknya RGB. Nah setiap dimensi ini bentuknya adalah Array of Number. Number disini adalah U8, atau 8-bit. Sehingga kalau RGB, total bit-nya adalah 24-bit. Karena di LabVIEW tidak ada datatype dengan 24-bit, angkanya tidak enak, bukan kelipatan kuadrat dari 2, maka dari itu yang digunakan adalah U32.

Mohon catatannya, image dalam LabVIEW ada banyak jenis, berikut ini beberapa yang saya ingat:

1. Grayscale: U8, value dari 0-255

2. RGB: U32, value dari 0-16777215

3. Binary: U8, value dari 0-1

Langkah berikutnya adalah melakukan segmentasi warna, agar warna yang tersisa adalah merah, kuning dan hijau. Yang lain kita buang.

sc6.pngsc7.pngsc8.png

Pilih HSV dengan angka:

Hue,                 Min:10, Max:31

Saturation,      Min:34, Max:103

Value,               Min:98, Max:134

*angka ini didapat dari hasil trial-error

*saran saya angka ini dibuat semepet mungkin, agar hasil yang didapat akurat dan mengurangi efek noise dari pencahayaan.

Voila....

sc8_1.png sc8_2.png

*yang berwarna merah itu adlaah area yang akan kita "Keep"

**Perhatikan, sekarang gambar kita bukan lagi RGB dengan format U32, tapi sudah menjadi Binary U8 karena kita threshold dari color-->binary.

4. Gambar Binary, tapi masih ada noise

Perhatikan digambar sebelah kanan atas yang ada hanya Hitam dan Merah (binary image), ada noise berupa bintik-bintik hitam di area merah. Kita remove ini menggunakan image-processing, yaitu Closing (http://homepages.inf.ed.ac.uk/rbf/HIPR2/close.htm).

sc9.pngsc10.png

sc11.png

*Voila kedua, gambar menjadi lebih baik.

5. Binary Image Inversion

Kenapa? Karena warna merah di atas adalah 1, bukan 0. Tujuan kita nanti adalah melakukan "Masking", antara gambar original (yang color) di mask dengna gambar binary (yang hitam putih) sehingga output dari gambar hanya bersisa gambar atau pattern yang kita mau saja.

sc12.png sc12_1.png

6.Particle Filter

Nah area merah nya jadi banyak dan background juga menjadi merah, kita perlu filter. Kita buang backgroundnya dengan cara menghitung luas setiap area yang berwarna merah (via fungsi Particle Filter), lalu kita set Min dan Max area yang kita mau simpan.

sc13.png sc14.png

sc15.png

sc16 scrip.png

Voila ketiga, selesai proses segmentasi warna kita.

Next stepnya adalah:

Simpan Script yang kita buat di Vision Assistant 2015. Saya simpan sebagai Script.vascr

sc17 save script.png

Load Sript tersebut dalam LabVIEW.

LabVIEW 2015 dan LabVIEW Vision Development Module 2015:

1. Buka LabVIEW

2. Buka Help>>NI Example Finder

3. Search "Image Mask"

sc18.png

Lalu buka VI tersebut, dan coba Run, dan dilihat-lihat apa gunanya dan bagaimana cara kerjanya:

sc18.png

Kalau dalam pengertian saya, example ini mengambil sebuah gambar, membuat "Mask" lalu melakukan filter/cropping digambar outputnya. Kita akan modifikasi VI ini.

4. Modifikasi VI

Modifikasi sehingga program menjadi:

Solution Snippet.png

*Vision Assistant Express VI dapat ditemukan di: Functions Palette>>Vision and Motion>>Vision Express>>Vision Assistant

sc19.png

Kalau sudah, bisa di Run dan menjadi:

sc20.png

Selamat mencoba!

Certified LabVIEW Developer (CLD)
Certified TestStand Developer (CTD)
Using LabVIEW 8.5.1 (2008) to LabVIEW 2021
Message 1 of 5
(5,446 Views)

Hello,

 

apakah bisa dengan Vision assistent ini kita menghitung benda berdasarkan warnanya saja? minta advise nya ya bang

0 Kudos
Message 2 of 5
(3,804 Views)

Hi adhepol

 

Untuk menghitung jumlah benda dengan warna, coba gunakan fungsi color pattern matching. 

0 Kudos
Message 3 of 5
(3,776 Views)

hi ,, selamat sore. 

saya anjas dari batam mau bertanya ...

 

apakah kita bisa detection 2 benda yang berbeda yang saling berdempetan ? dengan jarak 1 mm ??? 

 

program vision ini bisa di integrasikan ke plc omron ?

0 Kudos
Message 4 of 5
(3,735 Views)

 

apakah kita bisa detection 2 benda yang berbeda yang saling berdempetan ? dengan jarak 1 mm ??? 

--> bisa. lakukan image-processing dulu seperti, erosi .

 

program vision ini bisa di integrasikan ke plc omron ?

--> integrasi dua sistem, sistem PLC Omron & sistem Vision (PC Based) = bisa.

--> integrasi semua jadi satu sistem --> setahu saya, dan saya mungkin salah ya, PLC tidak mampu melakukan image-processing, karena fungsi dan tujuan hardwarenya berbeda.

 

Certified LabVIEW Developer (CLD)
Certified TestStand Developer (CTD)
Using LabVIEW 8.5.1 (2008) to LabVIEW 2021
0 Kudos
Message 5 of 5
(3,719 Views)