파이썬, opencv, 이미지 그레이스케일 변환 및 보기
글. 오상문 sualchi@daum.net
opencv는 이미지를 처리하는 오픈소스 라이브러리이며 파이썬 언어도 지원한다. 예제를 실행하려면 먼저 opencv를 설치해야 한다(pip install opencv-python).
예제를 실행하면 이미지 처리하고 원본 이미지와 변환된 이미지를 다른 창에 보여준다. 10초 후 또는 스페이스바/ 엔터 키 등을 누르면 이미지 창이 닫힌다.
다음은 예제에서 이미지를 가져오는 코드이다. 먼저 이미지를 가져오고(원본), 그것을 그레이스케일 옵션으로 변경한 이미지를 따로 만든다.
img_src = cv2.imread(filename) # 이미지 파일 읽어오기
# 흑백 명암(그레이스케일)으로 이미지를 변환
img = cv2.cvtColor(img_src, cv2.COLOR_BGR2GRAY)
만약 그레이스케일 이미지만 필요하면 위 두 줄은 아래처럼 한 줄로 처리할 수 있다.
# 이미지를 가져오면서 그레이스케일 처리
img = cv2.imread(filename, cv2.IMREAD_GRAYSCALE)
[참고] 이미지를 파일에 저장하기
cv2.imwrite(r"c:\temp\image_gray.jpg", img)
예제 코드는 다음과 같다. (실행하려면 opencv 패키지가 설치되어 있어야 한다.)
#---------------------------------------------------------------
import cv2
filename = r"c:\temp\test.jpg" # 파일 이름과 경로
# 이미지 파일 읽어오기
img_src = cv2.imread(filename)
# 흑백 명암(그레이스케일)으로 이미지를 변환
img = cv2.cvtColor(img_src, cv2.COLOR_BGR2GRAY)
# 아래 줄처럼 이미지를 가져오면서 그레이스케일 처리하는 방법도 있다.
# img = cv2.imread(filename, cv2.IMREAD_GRAYSCALE)
# 첫 번째 윈도우 생성한다.
cv2.namedWindow("image viewer1", cv2.WINDOW_NORMAL)
# 이미지 원본을 보여준다.
cv2.imshow("image viewer1", img_src)
# 두 번째 윈도우 생성한다.
cv2.namedWindow("image viewer2", cv2.WINDOW_NORMAL)
# 변환된 이미지를 보여준다.
cv2.imshow("image viewer2", img)
#
10초 기다린다. # 단 스페이스바, 엔터 키 등이 입력되면 바로 종료한다.
cv2.waitKey(10000)
# 이미지 윈도우를 닫고 종료한다.
cv2.destroyAllWindows()
<이상>
'Python 활용' 카테고리의 다른 글
matplotlib.pyplot.plot 3.1.1 소개 (0) | 2020.01.18 |
---|---|
파이썬, opencv, 사진에서 얼굴 인식하기 (0) | 2020.01.13 |
파이썬, 2차원 자료를 pandas DataFrame() 2차원 자료 만들기 (0) | 2020.01.11 |
파이썬, 1차원 자료를 pandas Series() 1차원 자료 만들기 (0) | 2020.01.11 |
파이썬, 기상청 웹 XML 페이지의 도시별 날씨 출력하기 (0) | 2020.01.08 |