Hello 各位,
又到了案例分享時間,今天的焦點是 NI Vision Assistant 這套開發工具 … 這裡是之前一位台大博士生幫我們做的應用評估報告和使用心得,提供給大家參考參考。需要使用版軟體的話,可以到此聯結下載,請笑納!
NI Vision Assistant 試用版下載:
https://lumen.ni.com/nicif/us/evalvisiondevmodule/content.xhtml
嫌下載太慢的話,可以撥 02-23772222 轉業務部,向 NI 索取免費 demo CD!
-John
前言:
利用相機取像後, 再透過已編輯好的LabView 程式對影像作後處理, 基本上這些影像後處理程序包含很多如Threshold, Fill holes etc…, 我們可以依據一些應用須要如找物體中心, 算物體面積, 高度etc…去選擇適當的影像後處理程序. 這裡舉一個算筆記型電腦面積及高度的應用例, 此應用例只是用來解釋影像後處理的功能及效果, 當然同一個影像後處理程序可用在很多不同的應用上, 甚至於不同的影像後處理程序的組合更可得到一影像處理的最佳結果.我們將此算筆記型電腦面積及高度的應用例程序步驟敘述如下.
![clip_image002[6] clip_image002[6]](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmhu3DUz8Y5ryUdqQTRwXoYOCc9S7zqRFdNMjWiMfLXviMqB1fGgtExynoj2vDoi234BgwcmzrPSkzcBrcdLCy6fZE2zquZ_w_4ei3b65mqyPrafC-XWUm7rtk38iMlmCTVeXNnnBAe_H5/?imgmax=800)
1. 開啟Vision Assistant
![clip_image004[6] clip_image004[6]](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUdPdsY5qxdVM-ZrEhrvVuZFR7rlIQQJvslgScRYvrvxkoMQt1eAW-xfZy7e51H9esRIQH6xMJUUPn-ZhtcUYQY-oAIsQG_J9ifh5TzTMjFDqCV7_y11nf-QLrnZ6OWYGgRWcOmPjjb8VU/?imgmax=800)
2. 開啟一Sample 影像檔
![clip_image006[5] clip_image006[5]](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcrpxe0_hGx_2Gp_Fp6itk80Fh-LrrsR-zrCtWT5h5AS_PmIXNYa4P4rHlvftDwLtO8Mw0qCYxxiN2WTq6uTz0rlq6eIXNW21xzOlB-Mb4oRrup4GCaYOhtOucJqli2f4_xWzU_aVGwleB/?imgmax=800)
3. 開啟影像檔後選擇影像處理模式
![clip_image008[7] clip_image008[7]](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiF8dDwo5w8lqCVrj0BTH1Ey0dm9ao_t6MBhH38aTgcGlEp_C4JQo5LlX6WEM9IcbiTR5nm_usCzv6Tp9nICnIJg5t5FdBOzKwYS49lIXm4EpdBVGlMe3Ke0TfDmZMFfbAeRz9PjlVWWFjD/?imgmax=800)
4. 開啟影像檔後選擇影像處理模式並調整(color threshold), 因為先將筆記型電腦的高度面變成一單一色彩的面, 如此對於後續再尋邊會有較佳且容易得到正確的結果.
![clip_image010[6] clip_image010[6]](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnlxKc-jKEZM8DA6CSwaPvtqMQMpi5KsyOguaqOz0KnT7xS5hsht5QrHsFdZ7wi5wufPbZrkAwzS_TCWvVPGH5PfW7ktZ80DsCKAIbSR7bLKpy5aVGz-YfuxMsrPjhS_3xL6g6d57PeEnk/?imgmax=800)
5. 開啟影像檔後選擇影像處理模式並調整(Adv. Morphology),須作這一步驟的原因是因為要補嘗上一步驟的缺陷,如步驟四的圖示, 在紅色面積內仍有些許封閉的小孔在紅色區域內, 這些小孔可能會影響尋邊的數值, 所以在此步驟我們用fill holes 的影像後處理程序來將整個筆記型電腦的高度面變成紅區域,如此尋邊就會更穩定更準確了.
![clip_image012[5] clip_image012[5]](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6wNWtJbeJAqlN7mdhFG-b1FV3StZPS26AvydxZMa_mPlDmIt7ICv_8Nt8-LXRhIcbujsNdkqnn4Kbs5csII3dEHB2TemF-NAGmqWDDd3ZxdSyr4WZ_WjgUczYxxDBXHsea5sBzrduDgzL/?imgmax=800)
6. 開啟影像檔後選擇影像處理模式並調整(Adv. Morphology: Fill Hole)
![clip_image014[6] clip_image014[6]](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsILXKjPsNaAZgesbpkO7c9GsJGRaqV2yLVTrX-Z4haQiihFeFrcm6kseg2u0-59AQI1zafPVj3S8HvVxwuO5CdthkSqkiyCUiZaI0zeCThVVnzqNneCSwbosCzpnTvCysQNhwhBiG-GL8/?imgmax=800)
7. 開啟影像檔後選擇影像處理模式並調整(Measure: Length), 在Measure 這個影像處理程序下, 有Position, Length, Angle Area,四個量測選項, 可依據所要得到的Data選擇量測選項. 此例我們選擇Length 和 Area 兩個量測選項來完成我們算筆記型電腦面積及高度的應用.
![clip_image016[6] clip_image016[6]](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqI5N6T132YKfMCDaeUF3YN1N6QDh3EryiOCTPGrLef8r3AH2BViXxfTaKTt1ALH_XLdq6LqSZoxwLJz-yKaovMbHDMmRJWkbwwVeRK7NKGPZ5FjT1Frl1_fuLyHqw8lP1Ey_OWFxbFs49/?imgmax=800)
8. 開啟影像檔後選擇影像處理模式並調整(Measure: Area)
![clip_image018[5] clip_image018[5]](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSDM4GaxhHh2ScIO9efeNxrWs3KiNOU4uCX-vYna7LXUdUBI3u3Nr3DSsZRkMmiymm8oeuxyXJHChsrT3RVof0zuKo4I_jh90Na_YpIpjdl_r4ygSwHZjXml76eH-OODQvJc9dhz1eX641/?imgmax=800)
9. 開啟影像檔後選擇影像處理模式並調整(Measureè存檔), 我們可以將所量測到的Length 和 Area 數據儲存到檔案中, 對於寫檔我們可以用 Write To Spreadsheet File.vi 來寫資料到檔案, 此 Write To Spreadsheet File.vi 是屬於一較高階的VI, 它已包含了開檔, 寫資料及關檔三個功能, 所以我們不要將此Write To Spreadsheet File.vi 放在 While/For Loop 內, 以免一直開/關檔案浪費 CPU 資源.若有須要在While/For Loop 內寫資料到檔案, 則我們可以選擇較低階的檔案I/O 寫檔方式, 即在進入 While Loop 之前先開檔, 接著在 While Loop 內寫資料到檔案內, 最後寫入資料完成且離開 While Loop 後將檔案關閉. 基本上因為此次並沒有真正接CCD Camera 來抓取影像, 所以我們直接用 NI Vision Measure Setup 的 Save Results 來儲存資料.
![clip_image020[5] clip_image020[5]](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGpdFTG8aT8hmW7rKX805XEjaY036llxsAdLsqe7jPI7M8go4D2KOIogdQLmxj5wIwPFNoJCmrgeAlY4TYvfRH0pHGwhC2M_ikQP8pI8_CazY2n1ab8Kqth_-K6dP3KV3ali8OWNesDCBG/?imgmax=800)
10. 影像處理模式完成
![clip_image022[5] clip_image022[5]](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipbXBv5VJHjdBG5u9RrilsLC-tqVFeu5rkX4MoLXcFV5k6LrDyMny-6CYoxBy1hvfqWOoMgFl3WYsMGSi34hhUKxKsl3HxVC4cYkq1B02cKBzu62QbhLbhGwVBfa-u1_WAA9Xd8TVr4MNq/?imgmax=800)
11. 選擇Tools下之Create LabVIEW VI 產生SUB VI 檔
![clip_image024[5] clip_image024[5]](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUqwrVGu1z1yiqnTCS6WGCJ9nfOHjaG-Puah_o3Dyq11zzQBv9HgjCEK0NOuR8MF1W5sxv0Fe6jDA-JZq27abaU7J1bis5weEFvbTruZNsV-qhF3I3c6IFa_CZICQgClDXbEvQb65eRGfJ/?imgmax=800)
12. 給定產生之SUB VI 檔儲存路徑
![clip_image026[5] clip_image026[5]](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHxjTqwKiy73OBv80921Kkx0k38NN_Icjn2aYWrrDOi3j49qxaNM0BEQFQQWGsxPQC2Il2bmZqZcB7_742tng4l2ojGjxXx8benVuIwJQILFoWBj5ndyme4kAi7GzL3D_ZzBOaIX96J3wI/?imgmax=800)
13. 給定產生之SUB VI 檔儲存檔名
![clip_image028[5] clip_image028[5]](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwka2L4friMq9bjaYjPJ606n-JPOJvFO3f7-qG5BBkpLzCvXWQ1-anq3SXw4EhtTiFz9mVXfLygvRDezdZlciE65KIsHbO3j_bgzIxdDB7HR1ZsTdEBngmExcGcsJ4KaKXKbcnCNvnwO8k/?imgmax=800)
14. 給定產生之SUB VI 檔儲存路徑及檔名
![clip_image030[5] clip_image030[5]](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_7Y_aQ6iObgnPmEyNr6DkS6Vr6tv1epFKBB5Va0KTaaYOhG0QtX4CXWYtQVFLAXpVtvNoD-_VEb7d3KLkcMnvwXrq1rpNoAlEZclIKA2HscFFeVLQdZ-h8vDJdutvb2QmhK90Ekl-Ry1G/?imgmax=800)
15. 選擇Current Script 後按Next
![clip_image032[4] clip_image032[4]](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqbDK_uRBm-5D5NnrkpWiZ71hcG5U1j5t9XElP296nL-PqA98QskFXkqMKss9p7jUZwNJ9PD0LJ-aXQo9xpzUqpIaAbLSUv3HFY6iL_Iw0EU-ov0RKKIn936YTaE_k5l4eaUVhOW7o2_X-/?imgmax=800)
16. 選擇Image File 後按Next
![clip_image034[4] clip_image034[4]](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJUctieD5HyxeTc597HUo3WBf7XvVHKOe2hGtr_HGOO_qNOBZ5IR6cPkU2VjdiHUCXoCyc0geawFrptNTmWZZ6T8DME74PYGL07Kkk3nw6DFP2ohBUwDrjQ4JTV7wyAOiFr7PGXeWWJKSY/?imgmax=800)
17. 選擇界面選項
![clip_image036[4] clip_image036[4]](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgca0zEX9j1MQT4ShJApo_qzAU8d2IOK0MMksLygOPGzlr08d6MaKK3WiSJOt6xmWaSFIoUtPNAQPlfgwPhveTUvwHcci0uOYCibbkr-hf3I3u-g-IP8FZ4WBjqDyuXZQAmJKUo-fo3RVz-/?imgmax=800)
18. 勾選全部界面選項
![clip_image038[4] clip_image038[4]](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgK4RnZ4XNbdZ_IadbXBtWQhCxkU7aJEpOqlr_j2R8Q44vPrB7usjLw_6t5hwAiAgPxjvpHKwYbWIJOTumitpRl8-4W7-0BfUjI8t7LlkS1U7gYna5PgBjETvUE3XADR9CMV7XcvOJVWyaH/?imgmax=800)
19. 產生之SUB VI 過程中
![clip_image040[4] clip_image040[4]](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjONjHe56hemhDVqjf60myZ7oBCgQDu8DoohqpB2ImuHLzF0VDq3nG6LiK1t33vaYBBRQigU8Xgi2KhyphenhyphenQxT7EfPZoCmxHnNbmMDBylRdNvgGxQV9mh_wLdUFY1DuGgSoFhPRaPuZJYq0epD/?imgmax=800)
20. 產生之SUB VI
![clip_image042[4] clip_image042[4]](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTdvHud5sU1OmmGi9Qa7zy-fTNDqyQCdrAriExLYz_EFdUMRMzylnt4HjDw54IUMItCO2xvMkPqERniY28PRpKKVuNGT9dBJTROckxO5PDHUOAhU6oNblHgPjYs5WQY_gLCfzQUDJlDiOT/?imgmax=800)
21. 產生之SUB VI

22. 右上角有一Write To Spreadsheet File.vi 用來寫資料到檔案
![clip_image046[4] clip_image046[4]](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiunL5zRSTJxh5BTro_VpIy2JmfgAN-qfWzaW3qmCuwL4zjw6StQL6J5iiWvPumJOcqH7aYi8bJyQd3hSo5M2YqxekFB5VcQYS0IoPTqJDKNJWrwl17ZK4WQ-Tr8IjWD5o8nUmrZYPFxRw6/?imgmax=800)
23. 執行SUB VI
![clip_image048[4] clip_image048[4]](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkKDZX-I7qBdL_p-zTFSQxKwbfas3Z9WYCUc5_W06_JdLnjqEXwO2lMSqxXJCopPhEQU7HWP7NOKDlU8duRis8EwToKxa5XbWnZrBDKoYQcX_ztHXTesrGzFRVzw5jfHBzmof17z_BPsj8/?imgmax=800)
24. 執行SUB VI後
![clip_image050[4] clip_image050[4]](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhohbTwsDGgIevZ6r92ien4AzxNt2o3DJcdGX5fkYrlpDgq9TLUgckVbkgCZwFJJSbehvfQ2YU_dZIPVj7BAGcCXWk2yUPbmwKKY1Eos4xswZN3hcedEwliCZ8jnzGJvxlsBYCqVcuFBhds/?imgmax=800)
25. 選擇Zoom to Fit 將Image 最佳化放置
![clip_image052[4] clip_image052[4]](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwHmTq7x6mmhHyg0qsrQjRozmH7D7UU8ZbEgd51AkERjQrTu6BCmYNzOcqq_ljWiyF7gIW2C67YVj6vdEPFhOFjABnL-4aZYGzEMaeekYzIatr43o_Ql_DAq0mUg27nnhDMxWOGrnbdExH/?imgmax=800)
26. Image 最佳化放置

27. 用 Write To Spreadsheet File.vi儲存量測結果

28. SUB VI 執行後之結果
結論:
LabView 給我最大的感覺就是User Friendly, LabView 是屬於一很高階的程式語言, 尤其是它的圖形化介面程式設計規劃的觀念, 這是別的程式如 C++, VB, PLC etc…所沒辦法同日而語的, 這對於一研發人員來說實在是一福音, 因為大部分的研發人員或工程師總是希望能縮短研發時間, 進而快一點得到研發成果, 所謂時間就是金錢, 誰的產品先上市, 那必定會有最大的成功機會, 相信這是一個贏家非常重要的關鍵條件. LabView 正好有這個特點, 用LabView可讓研發團隊的心思都花在核心技術上, 如此不但對研發團隊有很大的助益, 對於產品往後的維修服務更是可讓複雜度簡化到最低.
相關下載:
此報告 PDF 文件和程式下載
NI Vision Assistant 試用版下載:
https://lumen.ni.com/nicif/us/evalvisiondevmodule/content.xhtml
嫌下載太慢的話,可以撥 02-23772222 轉業務部,向 NI 索取 demo CD!