앞으로 영상처리 공부를 하기위해 opencv를 배우기 시작했다. 자율주행 부분에서 차선인식, 신호등 인식 등 사용처가 많고 앞으로 이 방향으로 전공을 하고 싶기에 공부 내용을 간단하게나마 정리하려 한다.
파이썬은 어느정도 설명은 필요 없으므로 바로 opencv 코드로 들어가겠다. 설치는 구글링해보면 간단하게 나오니 설치 한 후 코드작성을 통해 공부하면 된다.
# 시작하는 예제 코드
import sys
import cv2
print('Hello OpenCV', cv2.__version__)
img = cv2.imread('ch02/lenna.bmp')
# 파일 불러오는 함수(imread) , 경로설정도 해줘야 오류 안남
if img is None:
print('Image load failed!')
sys.exit()
cv2.namedWindow('image')
# 영상을 불러오기 위한 창을 생성
cv2.imshow('image', img)
# image 라는 이름으로 위의 img 경로에 있는 사진파일을 불러온다.
cv2.waitKey()
cv2.destroyAllWindows()
# 기다림 후 떠있는 창 소멸
# 키보드의 아무 키나 누르면 창이 소멸된다.
import cv2
import numpy as np
def showimage():
imgfile = 'len.bmp'
img = cv2.imread(imgfile, cv2.IMREAD_GRAYSCALE)
# grayscale 로 불러오기
cv2.namedWindow('model', cv2.WINDOW_AUTOSIZE)
# autosize 와 normal 존재
cv2.imshow('model', img)
k = cv2.waitKey(0)
# 만약 64비트 사용자라면 k == cv2.waitKey(0) 0xFF 이렇게 작성해야 한다.
if k == 27:
cv2.destroyAllWindows()
elif k == ord('c'):
cv2.imwrite('lencop.jpg', img)
cv2.destroyAllWindows()
# if 문을 살펴보면 아스키 코드값이 27인 esc키를 누르면 그냥 프로그램을 종료하고 c키를 누르면 copy 가
되는 것이다. ord() 함수는 문자를 아스키 값으로 변환하는 함수이다. ord('c')는 문자 c의 아스키 코드값
99를 리턴한다. ord() 와 반대되는 함수는 chr() 함수이다. chr('99')는 문자 'c' 를 리턴한다.
showimage()
# Matplotlib 을 이용하여 화면에 이미지 표시하기
import numpy as np
import cv2
import matplotlib.pyplot as plt
def showimage():
imgfile = 'lencop.jpg'
img = cv2.imread(imgfile, cv2.IMREAD_GRAYSCALE)
plt.imshow(img, cmap='gray', interpolation='bicubic')
# Matplotlib 의 imshow 함수를 이용하여 화면에 설정한 img 를 보이게 함
plt.xticks([])
# x축 눈금없이
plt.yticks([])
# y축 눈금없이
plt.title('model')
plt.show()
showimage()

| 파이썬 콜백함수, 람다, map(), filter() 함수 (0) | 2022.01.20 |
|---|---|
| 파이썬 class 에 대해서 (0) | 2021.12.30 |
| 파이썬 반복문 제어 ) break 과 continue 구분 (0) | 2021.07.13 |
| 파이썬 리스트 ) 오름차순, 내림차순 정렬하기 (0) | 2021.07.13 |
| 파이썬 연산자 (0) | 2021.06.16 |
댓글 영역