상세 컨텐츠

본문 제목

#1 opencv study

Coding/Python

by 세미531 2021. 8. 10. 17:45

본문

728x90

앞으로 영상처리 공부를 하기위해 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()

 

728x90

관련글 더보기

댓글 영역