땅지원
땅지원's Personal blog
땅지원
전체 방문자
오늘
어제
  • 전체 (353)
    • Frontend (2)
      • React (2)
    • Backend (90)
      • Java (16)
      • Python (19)
      • Spring (23)
      • Database (21)
      • Troubleshooting (8)
    • DevOps (27)
      • ELK (13)
    • CS (40)
    • OS (2)
      • Linux (2)
    • Algorithm (95)
      • concept (18)
      • Algorithm Problem (77)
    • 인공지능 (25)
      • 인공지능 (12)
      • 연구노트 (13)
    • 수업정리 (35)
      • 임베디드 시스템 (10)
      • 데이터통신 (17)
      • Linux (8)
    • 한국정보통신학회 (5)
      • 학술대회 (4)
      • 논문지 (1)
    • 수상기록 (8)
      • 수상기록 (6)
      • 특허 (2)
    • 삼성 청년 SW 아카데미 (6)
    • 42seoul (12)
    • Toy project (3)
    • 땅's 낙서장 (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • 20.11.6 BB21플러스 온라인 학술대회
  • 20.10.30 한국정보통신학회 온라인 학술대회

인기 글

태그

  • 이것이 리눅스다 with Rocky Linux9
  • I
  • ㅗ
  • E
  • D

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
땅지원

땅지원's Personal blog

수업정리/임베디드 시스템

라즈베리파이 OpenCV

2020. 12. 9. 22:06

Computer Vision

컴퓨터의 시각적인 능력(visual capability)로 할 수 있는 응용 및 연구 분야

 

 

영상 처리(image processing) 용 대표적인 Tool 

1. OpenCV (Open Source Computer Vision)

- 원래 Intel사에서 개발했지만, 현재는 Open Source BSD license

- OpenCV의 방대하고 다양한 기능은 일반 사용자가 그러한 기능을 이해하는 것을 어렵게 하는 단점 존재

 

2. SimpleCV (Simple Computer Vision) 

- OpenCV에 비해 부분적으로 기능상 제약이 있지만, 사용하기가 훨씬 쉬운 라이브러리

- 상대적으로 설치가 단순

 

 

OpenCV 3를 이용한 USB 카메라 사용 기본

NumPy 패키지

Python에서 과학적인 계산을 하기 위해 사용하는 주된 패키지 임
선형 대수를 위한 matrix library임
주로 일반적인 데이터의 다차원 컨테이너로 사용 가능

 

배열

x=np.array([1,2,3])

array([1,2,3])

 

x=np.arange(10)

array([0,1,2,3,4,5,6,7,8,9])

 

x=np.linspace(0,15,4) ==> 균등 간격의 점으로 배열 생성

array([0,5,10,15])

 

x.transpose() => 행이랑 열을 서로 바꿈(전치)

np.linalg.inv(x) => 역행렬

c=np.random.rand(3,3) => 난수 배열 생성

np.dot(a,b) => 행렬의 곱

 

matplotlib 패키지

image를 표시하기 위해 matplotlib 사용 가능
Python용 2D plotting library임

 

plt.title('____') => 그림 제목

plt.xticks([])

plt.yticks([]) ==> x,y 축을 정하는 건데 이렇게 공백으로 해놓으면 좌표가 안보임

 

OpenCV3.x 기본 실습

cv2.imread(filename,flag) 

영상을 read하는 기능

flag(두번째 인자) => 기본 flag=1
• cv2.IMREAD_COLOR : color image로 image를 load 함 (flag=1) BGR형식! 
• cv2.IMREAD_GRAYSCALE : gayscale mode로 image를 load 함 (flag=0)
• cv2.IMREAD_UNCHANGED : alpha 채널(투명도)이 포함된 image를 load함 (flag=-1)

반환 값은 NumPy 배열임

 

cv2.cvtColor(img,cv2.COLOR_BGR2RGB )

배열 위치 등 변경

 

cv2.imshow(window name,image)

image를 display하는 메소드

 

cv2.waitKey()
keyboard binding function 함수

인자는 milliseconds 단위의 시간 임

인자 값이 0이면, 키 누름을 무한히 기다리게 됨

 

cv2.destroyAllWindows() 
생성된 모든 window 를 닫음

 

cv2.destroyWindow(window name) 
특정한 이름의 window를 닫을 때 사용

 

cv2.namedWindow() 
먼저 window만 만들고, 나중에 해당 window에 image를 load하고자 할 때 사용

 

cv2.imwrite(filename, image)  
image를 파일로 저장하기 위해 사용

 

cv2.imread() => plt.imread() 의 문제점

cv2.imread()

image를 읽고, BGR(blue, Green, Red) pixel의 NumPy array로 저장

 

plt.imread()

image를 RGB(Red, Green, Blue) format 형식으로 입력을 해석해 표시함

 

OpenCV와 matplotlib가 image를 저장하는 형식이 다름

 

img_new = cv2.cvtColor( img, cv2.COLOR_BGR2RGB)을 하면

plt.imshow(img_new) 가능

 

Camera에서 video를 capture하는 과정

video를 일련의 개별적인 frames(image)으로 처리함

 

cv2.imshow(‘cap’, frame)

OpenCV 에서는 video를 일련의 frame으로 간주하므로, 연속적으로 다음 frame을 처리하려면 loop 처리가 필요

 

cv2.VideoCapture()

video capture 객체 생성 (1개인 경우 0인 device index)

 

cam.read()

ret, frame =  cam.read()

부울값 ret (캡처 성공 여부)과 image를 나타내는 frame 반환

 

cam.release() 함수
device 사용을 해제함

 

Zbar를 이용한 Barcode와 QRcode scanner 구현

이게 나온다고?

에반데

'수업정리 > 임베디드 시스템' 카테고리의 다른 글

ChatBot 이해  (0) 2020.12.09
인공지능과 머신 러닝(machine learning)  (0) 2020.12.09
LAMP  (0) 2020.12.09
라즈베리파이 GPIO 디지털 입출력(Python)  (0) 2020.12.09
단위 표시  (0) 2020.12.09
    '수업정리/임베디드 시스템' 카테고리의 다른 글
    • ChatBot 이해
    • 인공지능과 머신 러닝(machine learning)
    • LAMP
    • 라즈베리파이 GPIO 디지털 입출력(Python)
    땅지원
    땅지원
    신입 개발자의 우당탕탕 기술 블로그

    티스토리툴바