首頁
教育訓練
論壇
申請試用
最新消息
聯絡我們
More
若需要針對下列資訊確認每個數值是否正確在軟體方面該如何呈現比對
我遇到偶發無法判別,當+44C,偶發判斷為+tt造成我執行上錯誤,請問有沒有方式可以改善
推薦改善方法: 1. 使用較小的範圍 使用區域(Region)
2. 確保使用的 OCR Engine 是 [PaddleOCR version 4]
3. 使用Loop檢查OCR結果是否有數字, 沒有的話再次進行OCR辨識
Loop 迴圈 0~4 (最多執行4次)
執行Doodle (OCR 辨識)
檢查OCR 是否有回傳結果 (陣列 長度不是0), 執行Doodle 的結果是一個陣列(List) 若沒有找到的話會回傳 [] --> 空陣列. 所以如果是 ([]) 的話直接跳回下一個迴圈
使用 Regular Expression (正規表達式) 檢查結果是否有數字 (\d+ 代表受訓數字). 正規表達式 的結果是一個陣列(List) 若沒有找到的話會回傳 [] --> 空陣列. 所以如果是 ([]) 表示結果内沒有數字, 這時直接跳回下一個迴圈
如果有數字表示結果是正確的, 這時可以直接取出OCR結果
參考脚本:
1.程式需要判定,已經使用了IF該如何再把你的用loop檢查機制加進去
2.下載後的檔案我如何擺進Doodle程式內?
請參考脚本, 主要改變是早9-10行的動作:
OCR 結果是字串, 所以要先用 toNumber() 把他轉成數字
流程:
Loop 0-4 --> 最多會做4次
檢查OCR是否有結果 (Temp2 != 0) 沒有的話, 表示有問題, 跳到下一輪囘圈
檢查OCR結果是否有數字 (正規表達式) 沒有的話, 表示有問題, 跳到下一輪囘圈
檢查OCR結果是否大於60 (先把OCR結果轉成數字) 是的話表示過熱 --> 停止脚本, 不是的話表示正常 --> 跳出囘圈 (Break)
光執行SetVariableFromOcr這動作就出現錯誤,是我哪邊有寫法有問題嗎?
這個是您沒有 return action 造成的錯誤,您腳本執行後有需要將執行結果回傳給其他腳本使用嗎?
沒有喔~我只使用這腳本,不是很懂你在說return action 是什麼意思?
是指我再這邊的設定有問題嗎?
請問您這個Task有沒有設定return 呢?
請您在Task右鍵點擊
2. 確認是否有回傳值, 若有的話可以先打叉
3. 按 "確定" 這樣上面的錯誤訊息就會消失 (若確定沒有回傳) 錯誤訊息解説:
任務應該要有回傳值, 每條流程路綫都要有 "回傳"
若沒有 "if" 判斷, 一定要有一個 "回傳"
若有 "if" 判斷, 每條路綫都要有 "回傳"
若是:
True --> 回傳 "sss"
False --> 回傳 "ddd"
若流程沒有 Else, 需要放一個回傳在最後面
請參考教學PPT (Robotiive Workshop Slide (Chinese) - Intermediate.pptx) 52-58頁
Hi glen,
您是想將圖中每個名稱的對應數值取出並紀錄嗎?
應該說我想要把每個名稱的對應數值取出確認,是否符合我要的規範
如果這個畫面出現位置固定的話,建議您可以使用 Run Doodle 中 Advanced 功能的 SetVariableFromOCR
它可以透過 OCR 取得要辨識的數值,詳細設定如下:
1.將 OCR Region 框選至要辨識的區域
2.將 OCR Engine 調整為 PaddleOCR
3.設定輸出變數(VarName)
Run Doodle 取得 OCR 結果後腳本內可透過字串動作中的正規表達式,它可以用於過濾多餘的文字,其詳細參數如下:
之後只要透過 if / else if / else 判斷即可
設定完畢後的範例腳本如下:
其執行結果如下:
我遇到偶發無法判別,當+44C,偶發判斷為+tt造成我執行上錯誤,請問有沒有方式可以改善
光執行SetVariableFromOcr這動作就出現錯誤,是我哪邊有寫法有問題嗎?
Hi glen,
您是想將圖中每個名稱的對應數值取出並紀錄嗎?