ค่าความเข้ม

การวิเคราะห์ภาพทางชีวการแพทย์ด้วย Python

Stephen Bailey

Instructor

พิกเซลและวอกเซล

  • พิกเซล คือองค์ประกอบภาพ 2D
  • วอกเซล คือองค์ประกอบปริมาตร 3D
  • มีสองคุณสมบัติ: ความเข้มและตำแหน่ง

ภาพเอกซเรย์เท้า

การวิเคราะห์ภาพทางชีวการแพทย์ด้วย Python

ชนิดข้อมูลและขนาดภาพ

ชนิดข้อมูลของอาร์เรย์กำหนดช่วงของค่าความเข้มที่เป็นไปได้

ชนิด ช่วง จำนวนค่า
uint8 0, 255 256
int8 - 128, 127 256
uint16 0, 2$^{16}$ 2$^{16}$
int16 -2$^{15}$, 2$^{15}$ 2$^{16}$
float16 ~-2$^{16}$, ~2$^{16}$ >>2$^{16}$
import imageio.v2 as imageio

im=imageio.imread('foot-xray.jpg')

im.dtype
    dtype('uint8')

im.size
153600
im_int64 = im.astype(np.uint64)
im_int64.size
1228800
การวิเคราะห์ภาพทางชีวการแพทย์ด้วย Python

ฮิสโตแกรม

  • ฮิสโตแกรม: นับจำนวนพิกเซลที่แต่ละค่าความเข้ม
  • ใช้งานผ่าน scipy.ndimage
    • รองรับอาร์เรย์หลายมิติ
    • รองรับข้อมูลแบบ masked
  • เทคนิคขั้นสูงเพิ่มเติมอยู่ใน scikit-image
plt.plot(hist)
plt.show()
import scipy.ndimage as ndi

hist=ndi.histogram(im, min=0, max=255, bins=256)
hist.shape
(256,)

ฮิสโตแกรม

การวิเคราะห์ภาพทางชีวการแพทย์ด้วย Python

การปรับสมดุล

  • การกระจายมักเบ้ไปทางค่าความเข้มต่ำ (ค่าพื้นหลัง)

  • การปรับสมดุล: กระจายค่าใหม่เพื่อใช้ช่วงความเข้มทั้งหมดให้เกิดประโยชน์สูงสุด

  • ฟังก์ชันการแจกแจงสะสม (CDF): แสดงสัดส่วนของพิกเซลในแต่ละช่วง

ฮิสโตแกรม+CDF

การวิเคราะห์ภาพทางชีวการแพทย์ด้วย Python

การปรับสมดุล

import scipy.ndimage as ndi
hist = ndi.histogram(im, min=0, 
                         max=255,
                        bins=256)

cdf = hist.cumsum() / hist.sum() cdf.shape
(256,)
im_equalized = cdf[im] * 255

fig, axes = plt.subplots(2, 1) axes[0].imshow(im) axes[1].imshow(im_equalized) plt.show()

ภาพที่ปรับสมดุลแล้ว

การวิเคราะห์ภาพทางชีวการแพทย์ด้วย Python

มาฝึกกันเถอะ!

การวิเคราะห์ภาพทางชีวการแพทย์ด้วย Python

Preparing Video For Download...