====== Hardware: Jak działa autofocus? ======
narzędzia wykorzystane:
* https://phydemo.app/ray-optics/simulator/
* https://imagej.net/ij/
====== Wyostrzanie poprzez pomiar odległości (aktywne) ======
{{ :notatki:autofocus1.svg |}}
$$
\frac{1}{f} = \frac{1}{o} + \frac{1}{i}
$$
Gdzie:
* $f$ — ogniskowa soczewki (w metrach lub centymetrach),
* $o$ — odległość przedmiotu od soczewki,
* $i$ — odległość obrazu od soczewki.
====== Wyostrzanie poprzez wykrycie Fazy (pasywne) ======
===== Sytuacja w której obraz jest wyostrzony na matrycy =====
{{.:pasted:20250521-192149.png?700}}
===== Sytuacja w której obraz jest wyostrzony za matrycą =====
{{.:pasted:20250521-192229.png?700}}
===== Sytuacja kiedy obraz jest wyostrzony przed matrycą =====
{{.:pasted:20250521-192317.png?700}}
====== Wyostrzanie poprzez kontrast (pasywne) ======
Skrypt w pythonie obliczający sumę wszystkich różnic pomiędzy parami pikseli w obrazku.
from PIL import Image
def main():
img = Image.open("greyscale.png").convert("L")
pixels = list(img.getdata())
n = len(pixels)
total = 0
for i in range(n):
pi = pixels[i]
for j in range(i + 1, n):
total += abs(pi - pixels[j])
print(f"Pixels read: {n}")
print(f"Sum of abs diffs over all pairs: {total}")
if __name__ == "__main__":
main()
===== Wyniki dla obrazka wyostrzonego =====
{{.:pasted:20250521-204417.png}}
Pixels read: 11970
Sum of abs diffs over all pairs: 4496510654
===== Wyniki dla obrazka niewyostrzonego =====
{{.:pasted:20250521-204252.png}}
Pixels read: 11970
Sum of abs diffs over all pairs: 3223391491
===== Źródła =====
{{youtube>B-TOUPXytw4?}}