바뀜
둘러보기로 가기
검색하러 가기
102번째 줄:
102번째 줄:
− +
+
+
+
218번째 줄:
221번째 줄:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
편집 요약 없음
</syntaxhighlight>
</syntaxhighlight>
|-
|-
|영상 내보내기
|영상 보여주기
|처리한 영상을 img에 담으면 각 프레임마다
|처리한 영상을 img에 담으면 각 프레임마다
'창이름'이라는 창을 띄워 매끄러운 영상으로 보여준다.
'창이름'이라는 창을 띄워 매끄러운 영상으로 보여준다.
print함수로 코드 중간을 점검하듯, imshow로 점검한다.
|<syntaxhighlight lang="python">
|<syntaxhighlight lang="python">
cv2.imshow('창이름', img)
cv2.imshow('창이름', img)
오츠의 알고리즘을 사용하면 모든 경우의 수에 대한 경계값을 조사하기 때문에 느리다.
오츠의 알고리즘을 사용하면 모든 경우의 수에 대한 경계값을 조사하기 때문에 느리다.
|-
|적응형 트레숄드
|그러나.. 조명이 일정하니 않은 경우엔 하나의 경계값을 전체에 적용하면 일부가 타버리는 경우가 있다.
때문에 여러 영역에 따라 달리 적용해주어야 한다.
|<syntaxhighlight lang="python">
block_size = 9 # 블록사이즈
c = 5 # 차감상수
cov_img = cv2.adaptiveThreshold(img, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, block_size, c)
</syntaxhighlight>적응형에서 가우시안 분포를 사용해 정리하는 편이 노이즈도 적고 깨끗한 이미지를 얻을 수 있다.
|}
=== 이미지 준비 ===
{| class="wikitable"
!의도
!설명
!방법
|-
|노멀라이즈
|정규화 하면 흐릿했던 이미지의 격차를 벌려 선명한 이미지를 얻을 수 있다.
|<syntaxhighlight lang="python">
norm = cv2.normalize(img, None, 0, 255, cv2.NORM_MINMAX) # 구간 노멀라이즈를 실행한다.
</syntaxhighlight>
|-
|이퀄라이즈
|중심에서 멀리 떨어진 값은 노멀라이즈를 적용해도 여전히 흐리다.
노멀라이즈 후 누적값을 전체 개수로 나누어 나온 값을 원래 값에 매핑.
각각의 값이 전체 분포에 차지하는 비중에 따라 재분배하여 명암대비에 효과적.
빛이 적어 윤곽선이 흐릿한 부분을 살려준다.
|<syntaxhighlight lang="python">
img = cv2.equalizeHist(img)
</syntaxhighlight>
|}
|}