簡體   English   中英

如何使用腳本將(位掩碼)圖像轉換為圖像中的 ROI

[英]How to convert a (bit masked) image to ROI in the image with script

例如在下面顯示的圖像中,左側是(位掩碼)圖像,我想創建一個封閉的 ROI,其頂點連接虛擬光圈的輪廓,如右側所示(手工繪制,形狀不精確)。 當然,ROI 可以在現有圖像上或新圖像上。 在此處輸入圖像描述

這與使用腳本將虛擬孔徑應用於 4D-STEM 數據集的應用程序相關,我需要將位掩碼圖像(如虛擬孔徑,只有零和一)轉換為 ROI,然后應用 SI-Map function 所以加快計算和自動化( 我前段時間在這里提出的另一個問題,以及這里的部分答案)。

我想知道如何用腳本來做到這一點? 任何提示表示贊賞

沒有命令或簡單的方法可以將任意掩碼轉換為 ROI。

部分是這樣,因為 ROI 被定義為一組頂點。

為了進行轉換,首先必須從二進制掩碼創建“輪廓”掩碼,然后獲取所有輪廓點的 XY 坐標,然后使用算法對這些點進行排序,使它們形成 (閉環。 然后,可以創建一個 ROI 並將這些點添加為頂點。 都是可行的,但並非微不足道。

但我想知道為什么有人甚至會 go 到那個長度?

如果主要用例是使用 ROI 來限制 SI 中的某些數據,則必須在一個或另一個點將 ROI 轉換回二進制掩碼。 那么為什么不首先使用面具呢?

如果這只是蒙版可視化的問題,那么我建議使用適用於該任務的注釋:疊加注釋。 在此處輸入圖像描述

image front := GetFrontImage().ImageClone()
number sx, sy
front.ImageGetDimensionSizes(sx,sy)
image mask = front > mean(front) ? 1 : 0
front.ShowImage()
mask.Showimage()
component maskComp = NewOverlayAnnotation(0,0,sy,sx)
maskComp.ComponentSetForegroundColor(0,0,1)
maskComp.ComponentSetMask(mask)
maskComp.ComponentSetTransparency(0.5)
front.ImageGetImageDisplay(0).ComponentAddChildAtEnd(maskComp)

編輯:舊版本的 GMS 不支持這種類型的注釋。 在這種情況下,可以改為創建用於顯示的 RGB 混合圖像。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM