解決台大標本館TAI之數位標本上的比例尺有誤問題
現有網站的顯示
有使用過台灣植物資訊整合查詢系統的人應該對下圖文字不陌生,根據文字解讀,TAI的數位標本比例尺應為5公分而非10公分,實際造訪網頁可以看到有些已變更為5公分。
問題
那10公分的要怎麼變成5公分?
思路、解決手法
1. 錯誤的比例尺需要取代
既然比例尺應為5公分而非10公分,那便應該將10公分的移除,更換為5公分。
這裡其實有2個做法,一為有最原始的檔案(未加任何比例尺的),直接換5公分的上去,二為去除10公分的,再把5公分的擺上去,這裡走了第二條路。
2. 如何做?
- 要先找到10公分比例尺的位置,使用opencv的
cv2.TM_CCOEFF_NORMED
可以幫忙這件事,得出的結果也可以作為閾值切分是否成功取代。 - 找到位置後要將10公分的比例尺塗掉,更換為5公分的,如下圖,紅色框為偵測到的10公分比例尺範圍,然後紅框左上為基準,向上取得藍框顏色平均,再用該顏色塗掉10公分比例尺,最後貼上5公分比例尺。
3. 理想是美好的,現實呢?
1. 中文檔名,老問題了,用numpy
協助解決吧!
2. 辨識轉黑白比較好,但貼上還是得用彩色的底圖。是的,所以記得準備好不同變數待命。
3. 要不要降噪?根據實驗(下圖),降噪可以小幅提升opencv函數的數值結果,但會大幅增加運算時間,另外可以再想想今天的取代目標做降噪會不會是反效果?
4. 真的就是偵測完貼上這麼簡單嗎?流程上是這樣沒錯,但實際貼就會發現,會漏餡,因為沒辦法很好的擋住原比例尺。那要怎麼辦?類似Photoshop的概念很重要,一是圖層概念,二是遮罩(mask),三是圖層樣式。要知道5公分比例尺的貼上範圍、缺陷,所以可以做點前處理,外光暈是不錯的選擇。
5. 色彩轉換,opencv預設以BGR讀取圖片,貼比例尺時用PIL需要轉為RGB。
6. 跟時間賽跑,圖片量多,就算24小時讓電腦運轉大概1個月也跑不完,引入threading
,將圖片分為奇偶數,開啟雙執行緒壓榨電腦效能。