Preprocessing
Enhancement project에서 사용 가능한 preprocessing 종류는 다음과 같습니다 (총 6종류)
[
"noise_reduction",
"sharpen",
"contrast",
"adaptive_contrast",
"built_in_enhancer",
"final_touch_up",
]
preprocessing기능은 PreProcessor API를 통해 제공됩니다.
enhancement.PreProcessor
Enhancement의 preprocessing을 위한 PreProcessor class 입니다.
Usage
demo/preprocessing.py 참고
build(device)
classmethod
PreProcessor class의 instance를 생성합니다.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
"device" |
Union[torch.device, int, str], # GPU 번호 (int) or "cpu" (str) (default "cpu") |
required |
Returns:
| Name | Type | Description |
|---|---|---|
PreProcessor |
PreProcessor
|
PreProcessor class의 instance. |
preprocess(image, config_list)
image를 preprocessing합니다.
Parameters:
Returns:
| Type | Description |
|---|---|
ndarray
|
Example
preprocessor = PreProcessor.build(device="cpu")
image = np.zeros((512, 512), dtype=np.uint8)
config_list = [
{
"_target_": "noise_reduction",
"mask": np.ones((512, 512), dtype=np.uint8),
"denoise_level": 0.15,
},
{
"_target_": "sharpen",
"mask": np.ones((512, 512), dtype=np.uint8),
"sharpness_level": 1.0,
},
{
"_target_": "contrast",
"mask": np.ones((512, 512), dtype=np.uint8),
"contrast_level": 1.0,
},
{
"_target_": "adaptive_contrast",
"mask": np.ones((512, 512), dtype=np.uint8),
"clip_limit": 2.0,
"tile_grid_size": 8,
},
{
"_target_": "built_in_enhancer",
"mask": np.ones((512, 512), dtype=np.uint8),
},
{
"_target_": "final_touch_up",
},
]
image = preprocessor.preprocess(image, config_list)