---
# System prepended metadata

title: 6/22 Micro 影像處理模組改善討論

---

# 6/22 Micro 影像處理模組改善討論
## [待修正項目]
- [x] ~~1. 局部變異法優化~~
    - 客戶有發現當Mask大到一定程度時，在ROI邊緣會有大面積誤檢情況；故演算法流程應從reduce domain改為crop+affine trans (or expand_domain_gray)的形式去避掉
    - 因crop只能防正矩形ROI的誤檢，不適用於LS區(回字型ROI)，故暫定使用expand_domain_gray的方案
    - expand完的Image要再拿原本的ROI框Reduce Domain依次，才會讓VarThreshold的檢測部位跟ROI框一致(不然會Expand完，超過的部分也會進varThreshold)
    - expand的distance是半徑，var threshold的size是長寬，理論上expand的dist應改成長寬取其大者的一半=>(max(H,W))/2

- [x] 2. ROI編輯優化
    - [x] ~~(6/17) 按下新增形狀的ComboBox時，Focus就對應到新產生的ROI，並直接編輯~~
    - (6/22) 已修正，已驗證
    - [x] ~~(6/22) ROI複製功能異常，會讓既有的ROI Name被洗掉~~
    - [x] ~~(6/22) ROI Name需改成 [區域名稱(SS/LS/PAD), 測項名稱(自定義)] 的資料結構~~
        - 定稿ROI Name的DGV切成兩行，左行ROI tag [SS/LS/PAD] (用下拉式選單限制輸入) 右行ROI Name
        - [x] 左邊需加入當前檢測區域
        ![](https://i.imgur.com/ACwsWO9.jpg)
        - [x] 拿掉Enum做法、需與DGV連動，改成以下方式
            1. 由VisionControl開一個外部屬性List<string> RegionTypeList，預設{"SS", "LS", "PAD"}，但也可以由外部get、set
            2. DGV在ResetDataGridView_Region()這個function，需與RegionTypeList連動
            3. 砍掉那個enum，VisionAlgorithm.RegionGroupArray.RegionUnits.RegionParam.RgnType回傳string即可
        - (7/12) 若New一個區域，只有改ROI名稱，沒有特別觸發點選combobox的時候，會造成畫到UI上的問題
        ![](https://i.imgur.com/VQqEbse.png)


    - [ ] (6/24) 
        - 1. ROI測項編輯的"新增"、"複製ROI"按鈕按下後，focus沒有改變，造成誤刪除到編好參數的ROI --> ==focus需跟著新增複製而改變==
        - 2. 砍掉該ROI後，UI上沒有回復該ROI的機會，只能按"確定" --> ==新增"取消"按鈕==

- [ ] 3. 過濾條件異常
    - (6/22) 雜點會造成速度拖慢、記憶體暴漲
    - 嘗試使用Halcon矩陣運算取代for 迴圈作法
    - (6/27) Thickness需改成2倍inner_radius的方法
    - (6/27) 需再驗證過濾條件運算正確性(我測厚度參數，範圍不管設多少出來都全檢)
    - ==(7/13) 篩選條件不能用Max=Min=0去自動bypass，要像Dimension一樣chkbox+無上限==
    - ==現場討論加速方法==

- [x] ~~4. 切換曝光時會造成啟用flag亂掉~~
    - (6/14) 當一個ROI的檢測Recipe還沒編輯完時，切換曝光會讓啟用的flag亂掉，需要修正
    - 畫UI的Return順序再進行調整
- [x] ~~5. 演算法調參優化~~
    - [x] 每種閾值調用各自的參數by UserControl
    - Jeffery建議加入隱藏tab header的方案進型閾值參數切換
    - [x] 在"變異模型法" 內獨立新增"設定模型影像"，避免與定位設定的模型影像共用
    - [x] 在"雙門檻法" 內需新增距離參數，用來檢連續性瑕疵

- [x] ~~6. VisionControl 曝光切換防呆~~
    - (6/9) 切曝光combobox上限需與曝光最大張數連動
    - (6/10) 你好像是在designer改nud的maximum而已...
    - (7/12) 此項目改到與[待新增功能]內的曝光邏輯優化一起完成

- [ ] 7. 卡控條件異常
    - (6/22) "瑕疵尺寸無上限"的flag沒影響到部分屬性
    - 參數改用32 or 64bit int儲存，避免卡到上限
    - [ ] (6/24) 關於過濾條件、卡控條件的NumericUpDown (以後簡稱NUD)
        1. 有限定範圍不然會出錯的參數(Ex: 真圓度 0~1) ，要設定成最大安全範圍(我看角度NUD的上下限是0~100 ，但Halcon的定義理論上是-90~90)
        2. 無限定範圍的參數(Ex: 尺寸相關 0~無上限)，NUD上限先設定到你目前資料結構可定義的最大範圍(decimal? double?)，之後交付給我們後，我們再自行調整
        3. Min、Max的NUD，要有Max>=Min的邏輯
    - [ ] "瑕疵尺寸無上限"的作法不能直接改寫上限，會造成之前上限的設定被改寫
    - [ ] (7/13) "不勾選就不檢出"不符合操作邏輯，應該是設甚麼條件就後篩選甚麼屬性

    
## [待新增功能]

- [ ] 1. 拿到目前設定的曝光張數 --> Active Index邏輯修正
   - 已說明, 待修正 , Add 之後Active Index馬上++ 
- [ ] 2. VisionControl跳號防呆
   - (1)如果做完就可以防呆
- [ ] 3. Add新增的曝光張數，需被曝光最大張數卡控

## [問題]
- 以[60_59_0_0]進行檢出測試
    - ==若無法妥善檢出，需新增binary演算法==
    - 是否已測試
- "過濾條件"& "卡控條件"名詞歧異，是否更換?
    - ==大部分UI字型已改為正黑體+英文顯示==
- 因"允許瑕疵個數"條件而篩掉的Region，在vision algorithm是否撈的到?
    - ==小於上限時(OK時)，Region撈不到==

## [操作流程改善討論]
1. Recipe建置Demo
2. 流程討論Recipe編輯討論

## [流程討論細項]
==待[待修正項目]完成後，再進行本章節優化==
:::info
1. ~~卡控條件UI調整，需要有Group進行強連結~~
2. ~~字體改正黑體~~
3. ~~"定位設定"頁面，region不要用overpaint影像來顯示~~
4. ~~"顯示當前ROI"、"顯示當前ROI Defect"、"顯示當前PM Rect"換位置到檢測group內~~
5. "檢測項目" 分頁拿到外層，選項改radiobox，要有Default選擇，預設visible false
6. ~~影像通道"綜合"改成"gray"~~
7. ~~"瑕疵區域後處理" 內選項改英文(open&closinig)~~
8. "卡控條件"要有預設值，瑕疵尺寸無上限預設開啟
9. ~~"ROI編輯"、"定位設定"顯示是灰階，須改彩色~~
10. ~~設定模型影像從ROI Group放到上一階~~
:::
