개발 공부

8강 본문

AI/AI_Python_OPENCV 기초

8강

아이셩짱셩 2018. 8. 9. 13:12

#thresholding 임계값을 주어 이미지를 특징만 뽑아내 봅니다. 동전을 구분할 때 사용할 수 있습니다.

#임계값이란 범위, 한도, 경계 등으로 이해될 수 있다. 변화가 나타나기 시작하는 시점을 말한다.

#이진화 처리는 간단하지만, 쉽지 않은 문제를 가지고 있다. 이진화란 영상을 흑/백으로 분류하여 처리하는 것을 말합니다. 이때 기준이 되는 임계값을 어떻게 결정할 것인지가 중요한 문제가 됩니다. 임계값보다 크면 백, 작으면 흑이 됩니다. 기본 임계처리는 사용자가 고정된 임계값을 결정하고 그 결과를 보여주는 단순한 형태입니다.


# Import the necessary packages

import numpy as np

import argparse

import cv2


#동전 이미지로 해보자. cv2.cvtColor는 부른 이미지를 흑백으로 만들어 준다.

#고주파영역을 제거함으로써 노이즈를 제거하거나 경계선을 흐리게 하기 위해 표준정규 분포(가우시안함수)를 사용합니다. 전체적으로 밀도가 동일한 노이즈, 백색노이즈를 제거하는 데 가장 효과적이기 때문입니다

#cv2.GaussianBlur(image, (5, 5), 0) (5,5) 필터 사이즈이며 반드시 홀수로 적습니다. 0은 Gaussian kernel standard deviation in X direction??????

image = cv2.imread('coin.jpg',cv2.IMREAD_UNCHANGED)

image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

blurred = cv2.GaussianBlur(image, (5, 5), 0)

cv2.imshow("Image", image)


# cv2.threshold(입력 이미지, 임계값, 임계값을 넘을 시 지정할 값, cv2.THRESH_BINARY_INV)

#        cv2.THRESH_BINARY => 흑백으로 출력

#        cv2.THRESH_BINARY_INV => 흑백 반전

#앞의 T눈 봔한값(return값)이다.

(T, threshInv) = cv2.threshold(blurred, 100, 255, cv2.THRESH_BINARY_INV)

cv2.imshow("Threshold Binary Inverse", threshInv)


# 흑백으로 표현

(T, thresh) = cv2.threshold(blurred, 155, 255, cv2.THRESH_BINARY)

cv2.imshow("Threshold Binary", thresh)


cv2.waitKey(0)

'AI > AI_Python_OPENCV 기초' 카테고리의 다른 글

10강  (0) 2018.08.09
9강  (0) 2018.08.09
7강  (0) 2018.08.09
6강  (0) 2018.08.07
5강  (0) 2018.08.07
Comments