본문 바로가기
728x90
반응형

분류 전체보기336

15. Pandas Pandas 기본 사용법 # 판다스(Pandas): 데이터를 효과적으로 처리하고, 보여줄 수 있도록 도와주는 라이브러리입니다. # Numpy와 함께 사용되어 다양한 연계적인 기능을 제공합니다. # 인덱스(Index)에 따라 데이터를 나열하므로 사전(Dictionary) 자료형에 가깝습니다. # 시리즈(Series)를 기본적인 자료형으로 사용합니다. # 시리즈(Series): 시리즈는 인덱스와 값으로 구성됩니다. import pandas as pd array = pd.Series(['사과', '바나나', '당근'], index=['a', 'b', 'c']) print(array) print(array['a']) a 사과 b 바나나 c 당근 dtype: object 사과 import pandas as pd .. 2022. 4. 16.
14. KNN 숫자 인식 예제 #숫자 이미지 분류하여 저장하기 #1)숫자 인식 예제 코드 knn_trainer.py import cv2 import numpy as np img = cv2.imread('digits.png') gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 세로로 50줄, 가로로 100줄로 사진을 나눕니다. cells = [np.hsplit(row, 100) for row in np.vsplit(gray, 50)] x = np.array(cells) print(x.shape) # 5000개 데이터, 20x20 크기 # 각 (20 X 20) 크기의 사진을 한 줄(1 X 400)으로 바꿉니다. train = x[:, :].reshape(-1, 400).astype(np.float32) .. 2022. 4. 16.
13. KNN Algorithm #KNN Algorithm #K-Nearest Neighbor #KNN은 비지도학습(Unsupervised Learning)의 가장 간단한 예시입니다. #다양한 레이블의 데이터 중에서, 자신과 가까운 데이터를 찾아 자신의 레이블을 결정하는 방식입니다. import cv2 import numpy as np from matplotlib import pyplot as plt # 각 데이터의 위치: 25 X 2 크기에 각각 0 ~ 100 # astype 데이터형 dtype 변환(캐스팅) #random.randint() 함수는 [최소값, 최대값)의 범위에서 임의의 정수를 만듦 trainData = np.random.randint(0, 100, (25, 2)).astype(np.float32) # 각 데이터는 0 .. 2022. 4. 16.
12. OpenCV Filtering #필터링 #이미지에 커널을 적용하여 이미지를 흐리게(Blurring = Smoothing) 처리할 수 있습니다. #이미지를 흐리게 만들면 노이즈 및 손상을 줄일 수 있습니다. #특정한 이미지에서 커널(Kernel)을 적용해 컨볼루션 계산하여 필터링을 수행할 수 있습니다. #직접 커널을 생성하여 필터 적용하기 import cv2 import matplotlib.pyplot as plt import numpy as np image = cv2.imread('cat2.jpg') plt.imshow(cv2.cvtColor(image, cv2.COLOR_BGR2RGB)) plt.show() size = 10 kernel = np.ones((size, size), np.float32) / (size ** 2) pri.. 2022. 4. 16.
11. OpenCV Contours 처리 #cv2.boundingRect(contour): Contour를 포함하는 사각형을 그립니다. #사각형의 X, Y 좌표와 너비, 높이를 반환합니다. import cv2 import matplotlib.pyplot as plt image = cv2.imread('image_5.png') image_gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) ret, thresh = cv2.threshold(image_gray, 230, 255, 0) #논리곱(bitwise_and), 논리합(bitwise_or), 배타적 논리합(bitwise_xor), 부정(bitwise_not) #검,흰을 단절하기 위해 thresh = cv2.bitwise_not(thresh) plt.imshow(.. 2022. 4. 16.
10. OpenCV Contours #cv2.findContours(image, mode, method): 이미지에서 Contour들을 찾는 함수 #mode: Contour들을 찾는 방법 #1) RETR_EXTERNAL: 바깥쪽 Line만 찾기 #2) RETR_LIST: 모든 Line을 찾지만, Hierarchy 구성 X #3) RETR_TREE: 모든 Line을 찾으며, 모든 Hierarchy 구성 O #method: Contour들을 찾는 근사치 방법 #1) CHAIN_APPROX_NONE: 모든 Contour 포인트 저장 #2) CHAIN_APPROX_SIMPLE: Contour Line을 그릴 수 있는 포인트만 저장 #입력 이미지는 Gray Scale Threshold 전처리 과정이 필요합니다. #cv2.drawContours(im.. 2022. 4. 16.
9. OpenCV 도형 그리기 #cv2.line(image, start, end, color, thickness): 하나의 직선을 그리는 함수 #start: 시작 좌표 (2차원) #end: 종료 좌표 (2차원) #thickness: 선의 두께 import cv2 import numpy as np import matplotlib.pyplot as plt image = np.full((512, 512, 3), 255, np.uint8) image = cv2.line(image, (0, 0), (255, 255), (255, 0, 0), 5) plt.imshow(image) plt.show() #cv2.rectangle(image, start, end, color, thickness): 하나의 사각형을 그리는 함수 #start: 시작 좌표.. 2022. 4. 16.
8. OpenCV Tracker #cv2.createTracker(track_bar, name, window_name, value, count, on_change): Tracker를 생성하는 함수 #value: 초기 값 #count: Max 값 (Min: 0) #on_change: 값이 변경될 때 호출되는 Callback 함수 #cv2.getTrackerPos(track_bar, name, window_name): Tracker로부터 값을 얻어 오는 함수 import cv2 import numpy as np def change_color(x): r = cv2.getTrackbarPos("R", "Image") g = cv2.getTrackbarPos("G", "Image") b = cv2.getTrackbarPos("B", "Image.. 2022. 4. 16.
7. OpenCV 임계점 처리하기 #cv2.threshold(image, thresh, max_value, type): 임계값을 기준으로 흑/백으로 분류하는 함수 #image: 처리할 Gray Scale 이미지 #thresh: 임계 값 (전체 픽셀에 적용) #max_value: 임계 값을 넘었을 때 적용할 값 #type: 임계점을 처리하는 방식 #1) THRESH_BINARY: 임계 값보다 크면 max_value, 작으면 0 #2) THRESH_BINARY_INV: 임계 값보다 작으면 max_value, 크면 0 #3) THRESH_TRUNC: 임계 값보다 크면 임계 값, 작으면 그대로 #4) THRESH_TOZERO: 임계 값보다 크면 그대로, 작으면 0 #5) THRESH_TOZERO_INV: 임계 값보다 크면 0, 작으면 그대로 i.. 2022. 4. 7.
6. OpenCV 이미지 연산 #OpenCV를 활용한 이미지 크기 및 픽셀 정보 확인 import cv2 image = cv2.imread('cat2.jpg') # 픽셀 수 및 이미지 크기 확인 print(image.shape) print(image.size) # 이미지 Numpy 객체의 특정 픽셀을 가리킵니다. px = image[100, 100] # B, G, R 순서로 출력됩니다. # (단, Gray Scale인 경우에는 B, G, R로 구분되지 않습니다.) print(px) # R 값만 출력하기 print(px[2]) (224, 225, 3) 151200 [ 0 16 31] 31 #OpenCV를 활용한 특정 범위 픽셀 변경 import cv2 import matplotlib.pyplot as plt import time ima.. 2022. 4. 7.
728x90
반응형