curtis
14小時前 10220027159dc90f19f7c62a7b84bb00c6453d4c
doc/curtis/Image_Processer_Analysis.md
@@ -1,6 +1,6 @@
# 影像處理與轉換模組 (Image Processor) 深度分析
在 `CB_IMGPSScanImp.pas` 中,「影像處理與轉換模組」負責在硬體掃描取得原始影像後,以及上傳/顯示之前,對影像進行一系列的強化、分析與格式轉換。這個模組是決定影像品質、檔案大小與後續 OMR 辨識準確率的關鍵。
在 `CB_IMGPSScanImp.pas.bk` 中,「影像處理與轉換模組」負責在硬體掃描取得原始影像後,以及上傳/顯示之前,對影像進行一系列的強化、分析與格式轉換。這個模組是決定影像品質、檔案大小與後續 OMR 辨識準確率的關鍵。
若要將此模組進一步細拆,其內部組成可分為以下四大子分類:
@@ -57,6 +57,53 @@
---
## 影像相關關鍵字:
```js
[
'TTiffGraphic',
'TDibGraphic',
'DeskewImg',
'Rotate',
'CropImg',
'ImageReSize_FormID',
'ImageReSize_tmp',
'CheckNeedCrop',
'ImageProcessor.transformer',
'ConvertToBW',
'ConvertToGray',
'Image_Smooth',
'NegativeImg',
'CleanupBorder',
'ImageProcessor.converter',
'MpsGetBarcode',
'Get_OMR',
'ImageProcessor.barcodeRecognizer',
'FindPoint',
'CheckSize',
'GetSiteOMR',
'ImageProcessor.anchorAnalyzer',
'TJpegGraphic',
'DpiResize',
// 以下可省
'SaveQuality',
'FJpgCompression',
'ifTrueColor',
'ifGray256',
'ConvertToBW',
'ConvertToGray',
'Image_Smooth',
'NegativeImg',
'CleanupBorder',
'ifBlackWhite',
'tcGroup4',
'tcPackBits',
'tcJpeg',
'ifColor25'
]
```
## 💡 未來重構與微服務化建議
若要對此影像處理模組進行重構,建議方向如下:
@@ -67,3 +114,9 @@
    目前大量依賴畫面上隱藏的 `ISB_BW` (TImageScrollBox) 來進行二值化和條碼辨識。這違反了 MVC 原則且耗費額外的 GDI 資源。應改用純記憶體物件 (如獨立的 `TDibGraphic` 或 `TBitmap`) 在背景執行緒中進行這些運算,不要綁定可見的 UI 元件。
3.  **引入更現代的影像引擎 (如 OpenCV)**:
    早期依賴的 Envision SDK 在尋找十字定位點 (FindPoint) 和去斜 (DeskewImg) 的演算法可能較為老舊。若未來轉型為微服務架構,可將這部分邏輯移植為 Python/C++ 並使用 OpenCV 來達成更精準的高速運算。