2012-01-13 132 views
1

我想知道如何測量dicom中兩個像素之間的距離。已經做了一些google找到的像素間距(0028,0030)需要找到距離。有人可以清楚地解釋......如何在dicom中測量距離

謝謝

+0

您是否試圖闡明如何使用dicom標籤0028,0030,或者如何訪問像素數據,或者如何進行數學運算,或者......所有這些? – Aerik 2012-01-13 21:42:49

+0

哪種形式? (超聲波,ct,...) – 2012-01-14 09:39:06

回答

-4

您需要知道顯示器的點距。例如,一個超大像素有巨大的像素(猜測),所以距離比典型的桌面顯示器要大。向監視器的製造商詢問這些信息。之後使用pythogorean theorum。 sqrt(a^2 + b^2)= c c是總距離,a/b是x和y距離。找到一個,你會找到一個像素的座標並從另一個像素中減去。 a =(x1-x2)b =(

+3

這與顯示器的點距完全無關。 DICOM圖像包括定義體素現實世界空間維度的元數據。 – Matt 2012-01-16 18:28:37

11

假設您試圖測量主題/動物/幻影/任何距離,這一切都取決於您是要測量不同切片之間的距離還是僅僅在相同的切片

除了需要考慮的像素間距之外,體積型DICOM系列通常還具有切片間距(0012,0088)。請注意,切片厚度也是如此,應該使用而不是來計算距離,因爲在連續切片之間可能存在間隙或重疊。

將體素間距定義爲如下(僞代碼):

voxelspacing.x = first element of PixelSpacing (0028,0030), i.e. before "\" 
voxelspacing.y = second element of PixelSpacing (0028,0030), i.e. after "\" 
voxelspacing.z = SliceSpacing (0018,0088) or 0 if 2D and/or not specified 

有些死腦筋的製造商和去識別工具破片間距標籤在這種情況下,你將不得不從其他來源計算它,如連續切片位置的差異,患者圖像位置等,但這是另一回事。

繼續前進,您現在每個維度都有以毫米爲單位的體素之間的距離。然後,您可以計算出真實世界的歐氏距離在點A和pointB定體素座標:

delta = (pointA - pointB) * voxelspacing 
distance = sqrt(delta.x^2 + delta.y^2 + delta.z^2); 

,所有的運營商都逐個元件。在計算距離之前將體素座標與它們各自的間距單獨相乘是很關鍵的,因爲體素通常不是各向同性的。

+0

'距離'以mm或px或其他格式輸出? – kamlesh0606 2017-12-21 15:00:06