forked from LevKats/practice2021
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpreprocessing.py
More file actions
70 lines (52 loc) · 1.86 KB
/
Copy pathpreprocessing.py
File metadata and controls
70 lines (52 loc) · 1.86 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
import numpy as np
from collections.abc import Callable
from functools import partial
from scipy.fft import fft2
from scipy.fft import fftshift
def get_master_bias(bias: np.array) -> np.array:
"""
:param bias: подается трехмерный массив, нужно усреднить
:return: усредненный bias, возможно надо найти
"""
# todo
pass
def crop_image(image: np.array, shape: tuple) -> np.array:
"""
:param image: изображение
:param shape: итоговый размер изображения
:return: обрезанное изображение указанного размера (нужно для выбора
луча поляриметра)
"""
# todo
pass
def crop_image_pipe(shape: tuple) -> Callable[[np.array], np.array]:
return partial(crop_image, shape=shape)
def disable_weak_pixels(image: np.array, sigma_ron: float) -> np.array:
"""
:param image: усредненное изображение
:param sigma_ron: дисперсия шума считывания
:return:
"""
# todo
pass
def disable_weak_pixels_pipe(sigma_ron: float) -> Callable[[np.array], np.array]:
return partial(disable_weak_pixels, sigma_ron=sigma_ron)
def process_bias(frame: np.array, master_bias: np.array) -> np.array:
"""
:param frame: кадр
:param master_bias: баес
:return: вычитаем подложку
"""
# todo
pass
def mean_frame(frames: np.array) -> np.array:
"""
:param frames: кадры
:return: средний кадр
"""
# todo
pass
def get_fft_square_magnitude(frame: np.array) -> np.array:
return np.abs(fftshift(fft2(frame)))**2
def bias_pipe(master_bias: np.array) -> Callable[[np.array], np.array]:
return partial(process_bias, master_bias=master_bias)