import cv2 import numpy as np 트랙바 만들기 cv2.createTrackbar(trackbarName, windowName, value, count, onChange) cv2.createTrackbar('B', 'color_palette', 0, 255, onChange) 이 함수는 트랙바를 지정된 윈도우에 생성하는 함수이다. 1. trackbarName : 트랙바 이름 2. windowName : 윈도우 이름 3. value : 트랙바 시작 값 4. count : 트랙바 끝 값 5. onChange : 트랙바 이벤트 발생시 수행되는 TrackbarCallback 콜백함수 TrackbarCallback :: def onChange(x) createTrackbar 함수에서 마지막 인..
python 검색 결과
import cv2 import numpy as np import math from random import shuffle 도형그리기 캔버스 만들기 img = np.full((512, 512, 3), 255, np.uint8) 도형을 그리기 위한 공간을 생성한다. 위 코드는 (512, 512, 3)의 크기에 255라는 값으로 채워진 numpy array를 생성하는 코드이다. 데이터 타입은 uint8(0~255의 정수)이다. 여기서 배열을 채우는 값이 단일 상수로 되어있으면 흑백의 binary 값으로 인식하여 0이면 검은색, 255이면 흰색으로 채워지게 되고, (0, 0, 255)처럼 3개의 요소를 가진 벡터로 되어있으면 BGR 값으로 인식하여 해당 색으로 값이 채워지게 된다. cv2.line(img, p..
import cv2 import numpy as np 카메라로 영상 재생 cv2.VideoCapture(0) → 객체생성 cv2.VideoCapture(0) 함수를 사용해 VideoCapture 객체를 생성한다. VideoCapture의 인자로는 ★장치 인덱스(어떤 카메라를 사용할 것인지, PC에 웹캠이 2개인 경우 첫번째 웹캠은 0, 두번째 웹캠은 1로 지정할 수 있다.) 또는 비디오 파일 이름을 지정한다. def showVideo(): try: print("카메라를 구동합니다.") cap = cv2.VideoCapture(0) except: print("카메라 구동 실패") return cap.set(3, 1280) cap.set(4, 720) while True: ret, frame = cap.re..
import cv2 import numpy as np 이미지 읽기 cv2.imread(filename [, flag]) img = cv2.imread(filename, cv2.IMREAD_COLOR) 첫번째 인자에는 이미지 파일을, 두번째 인자에는 이미지 파일을 읽는 방식을 나타내는 플래그를 나타냄. flag는 대표적으로 3가지를 자주 사용함 1. cv2.IMREAD_COLOR : 컬러이미지 로드, 이미지의 투명한 부분(알파채널)은 모두 무시됨. 디폴트 플래그로 정수값은 1 2. cv2.IMREAD_GRAYSCALE : 흑백이미지 로드. 정수값은 0 3. cv2.IMREAD_UNCHANGED : 알파채널을 포함하여 이미지 '그대로' 로드. 정수값은 -1 cv::ImreadModes 참고 cv2.imsho..
OpenCV는 다양한 이미지 특징(feature) 처리 기능을 제공하는데 이 기능은 무료 라이선스가 아니다. 따라서 아니콘다나 pip 명령으로 내려받은 OpenCV 패키지에는 이 기능이 제외되어 있다. 이 기능까지 사용하고 싶은 개인 사용자는 OpenCV 소스코드를 내려받아 직접 컴파일을 해서 사용해야 한다. OpenCV를 컴파일하려면 GNU GCC C/C++ 컴파일러와 CMake 전처리기가 설치되어 있어야 하므로 윈도우나 맥은 빌드하기 까다롭다. 되도록 리눅스 운영체제나 도커를 사용하기를 권장한다. cjy8922/opencv_practice Contribute to cjy8922/opencv_practice development by creating an account on GitHub. github...
데이터 전처리란 무엇인가? 데이터 전처리는 머신러닝 알고리즘에 비해 알려져 있는 정도가 작지만, 중요도는 ML 알고리즘에 맞먹는 중요도를 가지고 있다. 왜냐하면 머신러닝을 통해서 예측을 한다는 것은 데이터 기반이기 때문에, 어떤 데이터를 입력으로 가지는가가 성능에 매우 중요하다. 그럼 어떤 데이터 처리가 필요할까? 1. "결손값", "NaN", "Null"값을 채워 넣는것이다. 머신러닝에 데이터를 입력으로 넣기 전에 해당 값들을 고정된 다른 변환 값으로 바꾸어야 한다. 다른 변환 값이라는 것은 또 무엇을 의미하는가? 이 값은 머신러닝을 제작하는 사람이 직접 고려해야 하는 부분이다. 예를 들어, 피처의 값이 얼마되지 않는 경우에는 피처의 평균값으로 결손값을 대체하는 경우가 있고, 결손값이 일정 수준의 비율..
※ HyperParameter(하이퍼 파라미터)란? 머신러닝 알고리즘을 공부를 하다보면 배운지 많이 듣는 용어 중에 하나이다. 1. 파라미터 VS 하이퍼 파라미터 일단, 파라미터는 일반 함수에서 결과값을 얻기 위해 넣어야 하는 요소들을 의미하는 용어로 사용되는 경우가 많다. 둘의 차이점을 머신러닝, 딥러닝 알고리즘의 범위로 제한한다면, 파라미터들은 측정되거나 데이터로부터 학습되어지는 요소들을 의미하고, 파라미터는 수작업으로 이루어지지 않는다. 즉, 사용자가 직접 입력하지 않는다는 의미이다. 데이터를 얻어 그 데이터의 평균이나, 표준편차 등이 파라미터에 속한다고 볼 수 있다. 하이퍼 파라미터는 머신러닝, 딥러닝 알고리즘에서 쓰이는 용어이다. 이것들은 대부분 해당 알고리즘이 어떻게 학습을 해야하는지에 대한 ..
머신러닝에서 학습한 데이터들을 가지고 학습한 모델의 성능을 학습 데이터로 사용한다면 당연히 성능은 100% 정확하게 나올 수 있다. 하지만, 실제로는 이미 학습한 데이터를 가지고 하는 것이 아니라, 처음 접한 데이터를 예측을 해야 하기 때문에, 그 성능을 측정하기 위해서는 학습 당시에 사용하지 않은 데이터를 가지고 성능 테스트를 해야 한다. 하지만, 가지고 있는 데이터는 한정적이기 때문에, 가지고 있는 데이터 안에서 학습에 이용할 데이터와 성능 테스트에 이용할 데이터를 분리해야 한다. 이 과정을 수행하는 것이 sklearn.model_selection의 train_test_split이다. 실제로 거의 모든 머신러닝 과정에서 위 함수를 사용하게 된다. train_test_split() 함수에서는 2가지 파..
불린 인덱싱 매우 편리한 데이터 추출 방식이다. iloc[ ], loc[ ] 을 사용하기 보다는 불린 인덱싱을 이용하여 데이터를 가져오는 경우가 더 많다. Why? 데이터 세트의 데이터 수는 일일이 수작업으로 인덱스를 적어서 처리하기에는 너무 많다. 따라서, 조건을 확인하고 인덱스를 적기보다는 해당 조건을 만족하는 데이터들을 바로 추출하는 불린 인덱싱을 이용하는 것이다. loc[ ] 을 사용하면서도 불린 인덱싱을 할 수 있다. ex> #두 코드는 동일한 기능을 가지고 있다. titanic_df[titanic_df['Age'] > 60][['Name','Age']] titanic_df.loc[titanic_df['Age'] > 60, ['Name','Age']] ※ 복수개의 조건들을 사용하는 경우 [ ](..
API Reference — scikit-learn 0.23.1 documentation scikit-learn.org Scikit-learn API - sklearn.model_selection 훈련세트와 테스트 세트를 나눌 때, 교차검증을 위한 검증 세트를 나눌 때, 하이퍼 파라미터 튜닝을 최적화 하기 위한 용도로 사용되는 클래스와 함수들을 모아둔 API Splitter Classes model_selection.GroupKFold([n_splits]) model_selection.GroupShuffleSplit([...]) model_selection.KFold([n_splits, shuffle, ...]) model_selection.LeaveOneGroupOut model_selection.Le..
최근댓글