ฮิสโตแกรม
ฮิสโตแกรม แสดงการกระจายตัวของค่าในภาพ โดยจัดกลุ่มแต่ละพิกเซลตามระดับความเข้มแสง แล้ววัดขนาดของแต่ละช่วง
พื้นที่ใต้ฮิสโตแกรมเรียกว่า ฟังก์ชันการแจกแจงสะสม (cumulative distribution function) ซึ่งวัดความถี่ที่ระดับความเข้มแสงของพิกเซลในช่วงต่าง ๆ ปรากฏขึ้น
ในแบบฝึกหัดนี้ ให้วิเคราะห์การกระจายตัวของความเข้มแสงใน im โดยคำนวณฮิสโตแกรมและฟังก์ชันการแจกแจงสะสม จากนั้นแสดงผลทั้งสองพร้อมกัน
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การวิเคราะห์ภาพทางชีวการแพทย์ด้วย Python
คำแนะนำการฝึกหัด
- นำเข้า
scipy.ndimageในชื่อndi - สร้างฮิสโตแกรม 256 ช่วงของ
imให้ครอบคลุมช่วงค่าทั้งหมดของnp.uint8 - คำนวณฟังก์ชันการแจกแจงสะสมของ
imโดยหาผลรวมสะสมของhistก่อน แล้วหารด้วยจำนวนพิกเซลทั้งหมดในhist - พล็อต
histและcdfบน subplot แยกกัน ซึ่งได้เตรียมโค้ดส่วนนี้ไว้ให้แล้ว
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Import SciPy's "ndimage" module
import ____ as ____
# Create a histogram, binned at each possible value
hist = ____
# Create a cumulative distribution function
cdf = hist.cumsum() / ____
# Plot the histogram and CDF
fig, axes = plt.subplots(2, 1, sharex=True)
axes[0].plot(hist, label='Histogram')
axes[1].plot(cdf, label='CDF')
format_and_render_plot()