Programming 9

[OpenCV-python] 2. Getting Started with Videos

이번 실습에서는 비디오를 read, display, save 하는 방법 카메라로 부터 비디오를 캡처하고 나타내기 cv.VideoCapture(), cv.VideoWriter() 함수에 대해서 배울 것이다. 카메라로부터 비디오 캡처 OpenCV는 카메라를 사용한 실시간 스트림 기능을 간단한 인터페이스로 제공한다. 나는 컴퓨터에 웹캠을 연결하여 실습을 진행하였다. 우선 이 실습을 진행하려면 VideoCapture를 생성해야된다. 이것의 argument는 장치 인덱스나 비디오 파일의 이름이 될 수 있다. 장치 인덱스는 카메라를 지정하는 숫자이다. 카메라 한대만 연결되어 있다고 가정하고 실습을 진행한다. 보통 0 이나 -1로 설정을 하면 된다. 카메라가 두 대 이상이면 1이나 다른 숫자로 지정을 할 수가 있다...

Programming/OpenCV 2021.06.08

[OpenCV-python] 1. Getting Started with Images

이번 실습에서는 이미지 파일 읽기 (cv::imread) OpenCV 창에 이미지 띄우기 (cv::imshow) 이미지 파일 쓰기 (cv::imwrite) 에 대해서 학습해볼 것이다. jpg 파일의 이미지를 준비한다. 해당 실습에서는 위 그림을 사용 전체 소스 코드 import cv2 as cv import sys img = cv.imread("jpg file path") #ex) cv.imread(r'C:\Users\starry_night.jpg') if img is None: sys.exit("Could not read the image.") cv.imshow("Display window", img) k = cv.waitKey(0) if k == ord("s"): cv.imwrite("starry_n..

Programming/OpenCV 2021.06.07

[OpenCV-python] 0. 개발환경 세팅

OpenCV-Python 이란? OpenCV-Python(Open Source Computer Vision-Python)은 컴퓨터 비전 문제를 해결하기 위해 설계된 python bindings 라이브러리다.C/C++ 과 비교했을 때 파이썬은 느리다. 파이썬은 C/C++로 쉽게 확장될 수 있어 C/C++로 집약적인 코드를 작성하고 파이썬 모듈로 사용할 수 있는 Python wrappers를 만들 수 있다. 이것은 두 가지 이점이 있다. 첫째, 코드는 원래의 C/C++ 코드만큼 빠르다.둘째, C/C++ 보다 파이썬으로 코딩하는 것이 더 쉽다. 설치 1. VS Code 설치 https://code.visualstudio.com/ 에디터로는 Visual Studio Code를 사용하여 앞으로 OpenCV 실습을..

Programming/OpenCV 2021.06.06

최대공약수 구하기

최대공약수를 구할 때 유클리드 호제법을 사용하면 최대 공약수를 쉽게 구할 수 있다. 유클리드 호제법이란 2개의 자연수의 최대공약수를 구하는 알고리즘의 하나이다. 2개의 자연수 a, b에 대해서 a를 b로 나눈 나머지를 r이라 하면(단, a>b), a와 b의 최대공약수는 b와 r의 최대공약수와 같다. 최대공약수 함수(python) def GCD(a,b): if a < b: (a ,b) = (b, a) while b != 0: (a , b) = (b , a % b) return a 예시 1071과 1029의 최대공약수를 구하면, 1071은 1029로 나누어떨어지지 않기 때문에, 1071을 1029로 나눈 나머지를 구한다. ≫ 42 1029는 42로 나누어떨어지지 않기 때문에, 1029를 42로 나눈 나머지를..

Matplotlib 정리

Matplotlib 정리 In [8]: import matplotlib In [11]: %matplotlib inline # 주피터 노트북에서 실행한 브라우저에서 바로 볼 수 있게 해주는 명령어 In [10]: import matplotlib.pyplot as plt plt.plot([1,2,4,9,5,3]) plt.show() In [13]: plt.plot([0,-1,-3,0],[0,4,2,4]) plt.show() plt.axis [xmin, xmax, ymin, ymax] In [18]: plt.plot([0,-1,-3,0],[0,4,2,4]) plt.axis([-5,5,-5,5]) plt.show() np.linspace -2 와 2 사이를 500개 만큼 나눈 값을 반환 In [23]: impo..

Programming/Python 2020.07.21

안드로이드 RecyclerView 만들기

1. activity_main.xml에 RecyclerView 추가 2. 데이터를 담을 클래스 생성 및 설정 (Menu.java) package org.techtown.recyclerview; public class Menu { String name; String price; public Menu(String name,String price){ this.name=name; this.price=price; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPrice() { return price; } public void setPrice(String p..

Programming/Android 2020.01.09

안드로이드 FrameLayout 트랜잭션

BottomNavigationView 아이콘 설정 이후의 작업 https://jalbin.tistory.com/13 1. activity_main.xml 에 FrameLayout 설정 2. FrameLayout에 들어갈 Layout 및 Java Class 생성 3. JavaClass 파일 설정 public class FragmentHistory extends Fragment { public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { return inflater.inflate(R.layout.fragment_history,contai..

Programming/Android 2020.01.02