Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ฮิสเทรีซิส thresholding คืออะไร? จะใช้ scikit-learn ใน Python ได้อย่างไร


ฮิสเทรีซิสหมายถึงผลกระทบที่ล้าหลังของผลลัพธ์ ในแง่ของธรณีประตู ฮิสเทรีซิสหมายถึงพื้นที่ ที่สูงกว่าค่าเกณฑ์ต่ำสุดที่เจาะจงหรือสูงกว่าค่าเกณฑ์สูง หมายถึงพื้นที่ ที่มีความมั่นใจในธรรมชาติสูง

ด้วยความช่วยเหลือของฮิสเทรีซิส นอยส์ที่อยู่นอกขอบของวัตถุในภาพสามารถละเลยได้

ให้เราดูว่าสามารถบรรลุเกณฑ์ฮิสเทรีซิสได้อย่างไรโดยใช้ไลบรารี scikit-learn:

ตัวอย่าง

import matplotlib.pyplot as plt
from skimage import data, filters
fig, ax = plt.subplots(nrows=2, ncols=2)
orig_img = data.coins()
edges = filters.sobel(orig_img)
low = 0.1
high = 0.4
lowt = (edges > low).astype(int)
hight = (edges > high).astype(int)
hyst = filters.apply_hysteresis_threshold(edges, low, high)
ax[0, 0].imshow(orig_img, cmap='gray')
ax[0, 0].set_title('Original image')
ax[0, 1].imshow(edges, cmap='magma')
ax[0, 1].set_title('Sobel edges')
ax[1, 0].imshow(lowt, cmap='magma')
ax[1, 0].set_title('Low threshold')
ax[1, 1].imshow(hight + hyst, cmap='magma')
ax[1, 1].set_title('Hysteresis threshold')
for a in ax.ravel():
a.axis('off')
plt.tight_layout()
plt.show()

ผลลัพธ์

ฮิสเทรีซิส thresholding คืออะไร? จะใช้ scikit-learn ใน Python ได้อย่างไร

คำอธิบาย

  • นำเข้าไลบรารีที่จำเป็น

  • ฟังก์ชัน subplot ใช้เพื่อกำหนดพื้นที่การลงจุดก่อนที่จะลงจุดภาพบนคอนโซล

  • ข้อมูล 'coin' ที่มีอยู่แล้วในแพ็คเกจ scikit-learn ถูกใช้เป็นอินพุต

  • ตัวกรอง 'sobel' ใช้เพื่อให้ได้ภาพ 'sobel' ของอินพุต โดยเน้นที่ขอบในภาพผลลัพธ์

  • ฟังก์ชัน 'apply_hysteresis_threshold' ใช้เพื่อรับค่าที่สูงกว่าและต่ำกว่าเกณฑ์ที่กำหนด

  • ข้อมูลนี้จะแสดงบนคอนโซลโดยใช้ฟังก์ชัน 'imshow'