mirror of
https://github.com/ciromattia/kcc
synced 2025-12-13 09:46:25 +00:00
Also attenuate high frequencies at 45°
CFA is sometimes orientated at 135°, sometimes at 45° so until we find if there is a law depending on the screen size, e-reader model or something, the best we can do is attenuate high frequencies on those two directions
This commit is contained in:
@@ -63,12 +63,16 @@ def attenuate_diagonal_frequencies(fft_spectrum, freq_threshold=0.30, target_ang
|
|||||||
|
|
||||||
# Calculation of complementary angle
|
# Calculation of complementary angle
|
||||||
target_angle_2 = (target_angle + 180) % 360
|
target_angle_2 = (target_angle + 180) % 360
|
||||||
|
|
||||||
|
# Calulation of perpendicular angles (CFA is sometimes orientated at 135°, sometimes at 45°)
|
||||||
|
target_angle_3 = (target_angle + 90) % 360
|
||||||
|
target_angle_4 = (target_angle_3 + 180) % 360
|
||||||
|
|
||||||
# Create angular conditions in a vectorized way
|
# Create angular conditions in a vectorized way
|
||||||
angle_condition = np.zeros_like(angles_deg, dtype=bool)
|
angle_condition = np.zeros_like(angles_deg, dtype=bool)
|
||||||
|
|
||||||
# Process both angles simultaneously
|
# Process both angles simultaneously
|
||||||
for angle in [target_angle, target_angle_2]:
|
for angle in [target_angle, target_angle_2, target_angle_3, target_angle_4]:
|
||||||
min_angle = (angle - angle_tolerance) % 360
|
min_angle = (angle - angle_tolerance) % 360
|
||||||
max_angle = (angle + angle_tolerance) % 360
|
max_angle = (angle + angle_tolerance) % 360
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user