본문 바로가기
Study(Data Analysis, OpenCV, Python, AI)/OpenCV-Python

2,3. OpenCV와 Python

by emergensaur 2024. 4. 18.

https://www.booksr.co.kr/product/opencv-python%EC%9C%BC%EB%A1%9C-%EB%B0%B0%EC%9A%B0%EB%8A%94-%EC%98%81%EC%83%81%EC%B2%98%EB%A6%AC-%EB%B0%8F-%EC%9D%91%EC%9A%A9/

 

OpenCV-Python으로 배우는 영상처리 및 응용 | 생능출판사

셜 맥루한이 1962년 처음으로 사용한 ‘글로벌 빌리지(global village)’는 세상이 인터넷과 같은 정보통신 기술에 의해 전 세계가 하나의 마을처럼 된다고 했습니다. 2020년은 그런 의미를 넘어서, 코

www.booksr.co.kr

이 글은 다음 도서를 요약 정리 및 활용한 내용입니다.

OpenCV(Open Source Computer Vision Library)는 영상처리와 컴퓨터 비전 관련 오픈 소스 라이브러리이다.

 

파이썬 자료구조

파이썬은 다양한 자료구조를 제공한다. 리스트와 튜플 같은 열거형 객체가 있다. 리스트는 대괄호, 튜플은 소괄호를 이용해서 선언하며, 리스트는 항목의 추가, 변경, 삭제가 가능하지만 튜플은 불가능하다.

딕셔너리 자료형은 중괄호를 통해 원소를 담고, 각 객체마다 키를 같이 구성해야 한다. 

 

열거형 객체의 슬라이싱 형식은 다음과 같다.

열거형 객체[시작 인덱스: 종료 인덱스: 인덱스 증가폭]

범위로 잘라놓고 생각하면 된다. 일단 잘라두고 인덱스 증가폭에서 방향성을 정하는 것이다. 

 

데이터가 아래의 drinks 와 같이 주어 졌을 때의 딕셔너리 자료형을 활용하여 카페 활동을 간단하게 코드로 작성해 보았다 아래와 같이 함수 내에서 함수의 호출역시 가능하다. 

데이터만 복사해서 원하는 대로 카페의 메뉴와 돈을 입력받고, 잔돈을 리턴하는 프로그램을 작성해보고 비교하는 것도 좋을 듯하다..? 파이썬 연습중이라 코드가 깔끔하지 못한점 죄송합니다..

drinks = [{'음료':'물' ,'가격': 450, '재고': 10},
        {'음료': '커피', '가격': 500, '재고': 10},
        {'음료':'이온음료', '가격': 550, '재고': 10},
        {'음료':'고급커피', '가격': 700, '재고': 10},
        {'음료':'탄산음료', '가격': 750, '재고': 10},
        {'음료':'특화음료', '가격': 800, '재고': 10}]


def cafe():
    money = input("돈을 입력해 주세요 ") 
    menu =input("메뉴명을 입력해주세요 ")
    exchange(money, menu)
    print("안녕히가세요")

def exchange(money, menu):
    money = int(money)
    menuChk = False #메뉴를 올바르게 받았는지 확인하는 변수 
    price = 0
    # 메뉴를 먼저 맞게 찾는다. - 메뉴 못찾을 경우 처리
    for dk in drinks:
        if dk['음료'] == menu:
            menuChk = True
            price = int(dk['가격'])
            print("메뉴 확인했습니다. ")
            break
    if menuChk == False:
        print("저희 카페에 없는 메뉴입니다 ㅠ")
        exit()
    # 찾은 메뉴에 맞게 금액을 뺀다. - 금액이 부족할 경우 처리
    print(type(price), type(money))
    if price>money:
        print("손님 돈이 더 필요하세요ㅠ")
    else:
        print("거스름돈" ,money-price,"이랑 음료",dk['음료'] ,"드리겠습니다~")
        
cafe()

 

모듈은 함수나 변수 또는 클래스를 모아놓은 파일이다. 파이썬에서는 import 파일 명으로 같은 폴더 내의 파일을 곧바로 임포트 하는 것이 가능하다. 

import numpy as np

list1, list2 = [1,2,3], [4,5.0,6]
a,b = np.array(list1), np.array(list2)

c = a + b
d = a - b 
e = a * b
f = a / b
g = a * 2
h = b + 2

print( c, "\n", d, "\n", e, "\n", f, "\n", g, "\n", h)

우리가 상식적으로 생각하는 대로의 연산이 발생하는 것을 확인 가능하다.  np.zeros((행, 열), 자료형) 와 같은 형식으로 np.ones, np.empty, np.full이 존재한다. 랜덤역시 랜덤값의 시드 지정 후, np.random.rand(행, 열)와 randn(정규분포 난수), randint 등이 있다. reshape()에서 -1은 수동적이라는 의미이다. 나머지 튜플 내 행 열 값 기준에 맞추고 이 부분은 자동적으로 맞춰진다는 뜻으로 이해하면 된다.