Spis treści

Hardware: Jak działa autofocus?

narzędzia wykorzystane:

Wyostrzanie poprzez pomiar odległości (aktywne)

$$ \frac{1}{f} = \frac{1}{o} + \frac{1}{i} $$

Gdzie:

Wyostrzanie poprzez wykrycie Fazy (pasywne)

Sytuacja w której obraz jest wyostrzony na matrycy

Sytuacja w której obraz jest wyostrzony za matrycą

Sytuacja kiedy obraz jest wyostrzony przed matrycą

Wyostrzanie poprzez kontrast (pasywne)

Skrypt w pythonie obliczający sumę wszystkich różnic pomiędzy parami pikseli w obrazku.

get_diff_pixel.py
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

Pixels read: 11970
Sum of abs diffs over all pairs: 4496510654

Wyniki dla obrazka niewyostrzonego

Pixels read: 11970
Sum of abs diffs over all pairs: 3223391491

Źródła