เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การนำ mask ไปใช้

แม้ mask จะเป็นแบบไบนารี แต่สามารถ นำไปใช้ กับภาพเพื่อกรองพิกเซลที่ mask เป็น False ออกได้

ฟังก์ชัน where() ของ NumPy เป็นวิธีที่ยืดหยุ่นในการนำ mask ไปใช้ โดยรับอาร์กิวเมนต์สามตัว ดังนี้

np.where(condition, x, y)

condition, x และ y สามารถเป็นอาร์เรย์หรือค่าเดี่ยวก็ได้ ซึ่งช่วยให้ส่งค่าของภาพต้นฉบับผ่านได้ตามปกติ ขณะที่กำหนดค่าของพิกเซลที่ถูก mask เป็น 0

มาฝึกการนำ mask ไปใช้โดยเลือกพิกเซลที่มีลักษณะคล้ายกระดูกจากภาพเอกซเรย์มือ (im)

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

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

ดูคอร์ส

คำแนะนำการฝึกหัด

  • สร้าง bone mask แบบ Boolean โดยเลือกพิกเซลที่มีค่ามากกว่าหรือเท่ากับ 145
  • นำ mask ไปใช้กับภาพโดยใช้ np.where() โดยกำหนดให้พิกเซลที่อยู่นอก mask มีค่าเป็น 0
  • สร้างฮิสโตแกรมของภาพที่ผ่าน mask แล้ว โดยใช้อาร์กิวเมนต์ต่อไปนี้เพื่อเลือกเฉพาะพิกเซลที่ไม่ใช่ศูนย์: min=1, max=255, bins=255
  • พล็อตภาพที่ผ่าน mask และฮิสโตแกรม ซึ่งได้ดำเนินการไว้ให้แล้ว

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# Import SciPy's "ndimage" module
____

# Screen out non-bone pixels from "im"
mask_bone = ____
im_bone = np.where(____, ____, ____)

# Get the histogram of bone intensities
hist = ____

# Plot masked image and histogram
fig, axes = plt.subplots(2,1)
axes[0].imshow(im_bone)
axes[1].plot(hist)
format_and_render_plot()
แก้ไขและรันโค้ด