openCV를 이용하고 설치하는것은 굉장히 까다롭다. 이에대해 한페이지 무더기로 글을 쌌으므로 확인하도록 한다.
일단 이미지 로딩은 다음과 같다.
원본이미지는 다음과 같다.
그레이스케일로 이미지 불러오기
import cv2
import numpy as np
image = cv2.imread('test01.jpg',0)
이렇게 하면 그레이스케일로 잘 로딩할수 있다.
다만 openCV에서는 괴상하게도 X를 누르면 잘 꺼지지가 않는다. 다음처럼 코딩해서 뭔가 그림이 꺼지게끔 해야한다.
실제 이미지 띄우기
cv2.imshow('image',image)
cv2.waitKey(0)
cv2.destroyAllWindows()
파이썬 코드는 단순한 C++의 코드의 wrapper클래스이기 때문에, 실제 C++ 구현방식을 따라서 간다.
이미지 쓰레시홀딩 (Otsu 쓰레시홀딩)
평범한 global thresholding
ret1,th1 = cv2.threshold(image,127,255,cv2.THRESH_BINARY)
Otsu's thresholding
ret2,th2 = cv2.threshold(image,0,255,cv2.THRESH_BINARY+cv2.THRESH_OTSU)
가우시안 필터링 후 Otsu's thresholding
blur = cv2.GaussianBlur(image,(5,5),0)ret3,th3 = cv2.threshold(blur,0,255,cv2.THRESH_BINARY+cv2.THRESH_OTSU)
각각의 이미지를 확인하는 방법은 역시나 같다. image대신 th1 / th2 / th3 을 확인하면 되고, 실제 구분값은 ret1 / 2 / 3 을 확인하면 된다.
Otsu 구분법이 왜 힘을 가지는가? 에 대해서는 나중에 보충
가우시안 필터링 후 스레시홀딩을 걸었을때는 다음과 같다.
'데이터분석 > Vision Recognition' 카테고리의 다른 글
이미지 프로세싱 관련 라이브러리 모음 (0) | 2015.12.13 |
---|---|
[Python/openCV 2] 기본 (0) | 2015.12.06 |
scikit-image를 이용한 간단한 이미지 불러오기 (0) | 2015.12.01 |
OpenCV 3 + 비주얼 스튜디오 + 윈도우즈10 설치 (4) | 2015.11.28 |
openCV 주요 모듈 (0) | 2015.11.28 |