728x90
반응형
이번 포스팅은
https://docs.opencv.org/4.5.2/df/d3d/tutorial_py_inpainting.html
을 보고 공부한 것을 정리 했습니다.
1. Inpaint 란?
- 오래된 사진에서 작은 노이즈를 제거하는 방법입니다.
- OpenCV를 통해 Inpaint 함수를 알아보고 구현해보겠습니다.
Inpaint 함수
- python-opencv 에서 inpaint 함수를 사용하기 위한 원형은
- cv2.inpaint(src, inpaintMask, inpaintRadius, flags[, dst]) 입니다.
- inpaintMask : 8비트 1채널 이미지 ( 흑백 이미지 )
- inpaintRadius : 알고리즘에 의해 포인트의 circular neighborhood 의 Radius
코드 예시 )
import cv2
import numpy as np
noise_img = cv2.imread('./images/img1.png')
noise_img = cv2.resize(noise_img, (480, 480))
noise = cv2.imread('./images/img2.png')
noise = cv2.cvtColor(noise, cv2.COLOR_BGR2GRAY)
noise = cv2.resize(noise, (480, 480))
dst = cv2.inpaint(noise_img, noise, 3, cv2.INPAINT_TELEA)
cv2.imshow('normal', noise_img)
cv2.imshow('noise', noise)
cv2.imshow('inpaint', dst)
cv2.waitKey(0)
cv2.destroyAllWindows()
- noise_img는 노이즈가 있는 이미지이며
- noise는 노이즈가 있는 이미지에 노이즈만 따로 있는 이미지 입니다.
- noise를 BGR2GRAY를 통해 흑백 이미지로 만들어 주었습니다. -> 해주지 않으면 에러가 발생합니다!
결과)
- 결과를 보시면 노이즈가 조금 사라진 것을 볼 수 있습니다.
다음 포스팅으로 찾아오겠습니다
감사합니다 :)
728x90
반응형
'영상처리' 카테고리의 다른 글
Python - OpenCV (8) : k-means Clustering (0) | 2021.07.13 |
---|---|
Python - OpenCV (7) : Background Subtraction (0) | 2021.07.11 |
Python - OpenCV (5) : 허프 변환 (Hough Transformation) (0) | 2021.05.25 |
Python - OpenCV (4) : 컨투어(contour) 1 (0) | 2020.12.06 |
Python - OpenCV (3) : 모폴로지(morphology) (0) | 2020.12.05 |