@@@
opencv를 통하여 불러오는 이미지는 Bitmap 형식이므로 , 어떤 이미지라도 노이즈가 존재한다.
Noise 픽셀들만 정확 히 찾아내서 원래색으로 되돌리는것은 불가능하다.
1.어떤 픽셀이 noise인지 알수없다.
2.알수있다하더라도 원래 어떤색을 가지고있었는지 알수가없다.
그래서 Noise를 완전히 없애기는 어려우니 눈에 덜 띄도록 하는것이 한가지 방법이될수있다.
Noise픽셀의 특징은 주변과 다른색을 가진다는것인데 이것을 주변 픽셀들과 비슷한 색깔을 갖도록하면 될것이다?!
다만 어떤 픽셀이 Noise인지를 모르기때문에 모든 필셀에 대해서 주변 픽셀들과 비슷한 색을 갖도록 하는것이 noise를 완화시키는 한가지 방법이다.
그중하나의 알고리즘이 fastNlMeansDenoisingColored 이다 .
import cv2
img = cv2.imread('noise/120.png')
img = cv2.resize(img,dsize=(1000,700))
dst = cv2.fastNlMeansDenoisingColored(img, None, 10, 10, 7, 21)
"""
이미지
dst : 목적지?
h : 필터강도를 결정하는 인자 //값이 더높으면 noise를 더잘제거하지만 noise가 아닌 픽셀도 제거함.(10을추천)
h_color : h와 같은의미 색이있는 이미지에 한해서 사용됨
templateWindowSize : 홀수값권장
searchWindowSize :홀수값 권장
"""
cv2.imshow("origin",img)
cv2.imshow('remove_noise',dst)
cv2.waitKey(0)
cv2.destroyAllWindows()
'Python > Opencv(python)' 카테고리의 다른 글
open cv 필터 목록 (0) | 2020.03.17 |
---|---|
openCV Error (0) | 2020.02.07 |
Opencv란? (0) | 2020.02.04 |