모니터 화면 사진에서 노이즈를 제거하려고합니다. 다음은 소스 사진입니다.
몇 가지 다른 접근 방식을 시도 했으므로 현재 코드 버전은 다음과 같습니다.
clr_img = cv2.imread("D:\Noisy.jpg", 1)
gray_img = cv2.cvtColor(clr_img, cv2.COLOR_BGR2GRAY)
gray_img = cv2.fastNlMeansDenoising(gray_img, h=11)
binary_image = cv2.adaptiveThreshold(gray_img, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY_INV, 91, 12)
결과는 다음과 같습니다.
이런 종류의 소음을 제거 할 수 있습니까?
적응 형 임계 값을 지정하기 전에 평활화 작업을 적용해야합니다. 간단한 흐림 효과는 노이즈를 줄이는 데 도움이됩니다. 단순 평균 흐림 ( cv2.blur
), 가우시안 흐림 ( cv2.GaussianBlur
) 또는 중앙 흐림 ( cv2.medianBlur
) 중 하나가 작동합니다. (7,7)
가우시안 블러를 사용한 결과는 다음과 같습니다 .
import cv2
image = cv2.imread('1.jpg')
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
blur = cv2.GaussianBlur(gray, (7,7), 0)
thresh = cv2.adaptiveThreshold(blur,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY_INV,51,9)
result = 255 - thresh
cv2.imshow('thresh', thresh)
cv2.imshow('result', result)
cv2.waitKey()
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다