Focus Analyzer
This module contains the FocusAnalyzer class for analyzing focus quality in microscopy images.
FocusAnalyzer
- class ezstitcher.core.focus_analyzer.FocusAnalyzer
Provides focus metrics and best focus selection.
This class implements various focus measure algorithms and methods to find the best focused image in a Z-stack. All methods are static and do not require an instance.
- DEFAULT_WEIGHTS: dict = {'nvar': 0.3, 'lap': 0.3, 'ten': 0.2, 'fft': 0.2}
Default weights for combined focus measure.
- static normalized_variance(img)
Normalized variance focus measure. Robust to illumination changes.
- Parameters:
img (numpy.ndarray) – Input grayscale image
- Returns:
Focus quality score
- Return type:
- static laplacian_energy(img, ksize=3)
Laplacian energy focus measure. Sensitive to edges and high-frequency content.
- Parameters:
img (numpy.ndarray) – Input grayscale image
ksize (int) – Kernel size for Laplacian
- Returns:
Focus quality score
- Return type:
- static tenengrad_variance(img, ksize=3, threshold=0)
Tenengrad variance focus measure. Based on gradient magnitude.
- Parameters:
img (numpy.ndarray) – Input grayscale image
ksize (int) – Kernel size for Sobel operator
threshold (float) – Threshold for gradient magnitude
- Returns:
Focus quality score
- Return type:
- static adaptive_fft_focus(img)
Adaptive FFT focus measure optimized for low-contrast microscopy images. Uses image statistics to set threshold adaptively.
- Parameters:
img (numpy.ndarray) – Input grayscale image
- Returns:
Focus quality score
- Return type:
- static combined_focus_measure(img, weights=None)
Combined focus measure using multiple metrics. Optimized for microscopy images, especially low-contrast specimens.
- Parameters:
img (numpy.ndarray) – Input grayscale image
weights (dict, optional) – Weights for each metric. If None, uses DEFAULT_WEIGHTS.
- Returns:
Combined focus quality score
- Return type:
- static find_best_focus(image_stack, metric='combined')
Find the best focused image in a stack using specified method.
- static select_best_focus(image_stack, metric='combined')
Select the best focus plane from a stack of images.
- Parameters:
- Returns:
Tuple of (best_focus_image, best_focus_index, focus_scores)
- Return type:
- static compute_focus_metrics(image_stack, metric='combined')
Compute focus metrics for a stack of images.
- static _get_focus_function(metric)
Get the appropriate focus measure function based on metric.