일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- numpy
- 웹 프로그래밍
- OpenCV
- GUI
- Web Programming
- MariaDB
- 파이썬
- Computer Vision
- 텐서플로우
- paper review
- 장고
- 논문 리뷰
- Docker
- yaml
- Django
- tensorflow
- pytorch
- Python
- Deep Learning
- Tkinter
- POD
- 딥러닝
- kubernetes
- 그래픽 유저 인터페이스
- 컴퓨터 비전
- 파이토치
- k8s
- 데이터베이스
- FLASK
- vue.js
- Today
- Total
목록Computer Vision (7)
Maxima's Lab
안녕하세요, 오늘은 Opencv를 활용한 Mouse Event (마우스 이벤트)를 사용하는 방법에 대해서 알아보도록 하겠습니다. 마우스 이벤트를 활용하여 구현해볼 예시는 다음과 같습니다. 1. Mouse의 왼쪽 버튼을 누르는 이벤트를 발생 시 해당 위치 정보를 저장하여 시각화 2. Mouse의 왼쪽 버튼을 누르는 이벤트를 발생 시 기존 Original Image에 있었던 도형을 지우며, 지워진 도형에 대한 위치 정보를 저장하여 시각화 Mouse Event 중 cv2.EVENT_LBUTTONDOWN과 cv2.EVENT_MOUSEMOVE를 이용하여, Black Image에 Mouse의 왼쪽 버튼과 Mouse의 이동에 따른 위치 정보를 White 값으로 시각화하는 예시입니다. import cv2 import ..
오늘은 이미지 내 연결 성분들에 대해서 Labelling를 하는 방법인 Connected Component Labelling에 대해서 알아보겠습니다. 해당 알고리즘을 적용하기 위해 Scipy 내 ndimage 패키지의 gaussian_filter() 함수와 label() 함수를 사용합니다. from scipy.ndimage import gaussian_filter() from scipy.ndimage import label() 위의 함수들을 이용해서 하단의 Original Image에 대해 Connected Component Labelling 알고리즘을 적용합합니다. 위의 Original Image 내 총 6개의 서로 다른 도형들이 존재하며, 2개의 사각형들은 연결되어 있는 것을 확인할 수 있습니다. C..
안녕하세요, 오늘은 Edge Detection을 하는 방법 중 Sobel Filter를 활용하는 방법에 대해서 알아보겠습니다. 이미지 처리를 하는데 있어서 Edge Detection을 하는 것은 매우 중요한 알고리즘입니다. 이미지에서의 Edge(엣지)는 반사율, 조명, 방향 등이 변함에 따라 발생하게 됩니다. 이러한 Edge를 검출하기 위해 Sobel Filter (소벨 필터)를 사용해보겠습니다. 소벨 필터를 적용하기 위한 방법은 다음과 같습니다. Opencv 내 cv2.Sobel() 함수 사용 직접 Sobel Filter 생성 & Opencv 내 cv2.filter2D() 함수 사용 다음의 Original Image를 Sobel Filter를 사용해서 Edge를 검출하는 코드에 대한 예시입니다. imp..
안녕하세요, 오늘은 Numpy (넘파이)의 expand_dims, append, stack 함수에 대해서 알아보겠습니다. ▶ expand_dims() : Array (배열)의 shape (형태)를 확장시키는 함수 random.randint() 함수를 이용하여 size = (100, 64, 64) 이고 0 이상 256 미만의 임의의 값을 원소로 갖는 배열을 생성하여, 해당 배열에 expand_dims() 함수를 적용해보겠습니다. import numpy as np array_a = np.random.randint(0, 256, (100, 64, 64)) print(array_a.shape) array_a_axis_0 = np.expand_dims(array_a, axis=0) print(array_a_axi..
안녕하세요, 오늘은 Numpy (넘파이)의 "ndarray" 에 대하여 알아보겠습니다. 여기 ndarray는 N-dimensional array (즉, N차원 배열)를 의미합니다. 먼저, 다음과 같이 예시를 들어보겠습니다. ▶ 1차원 배열 및 다차원 배열의 예시 1차원 배열의 예시 import numpy as np array_a = np.array([1, 2, 3]) print(type(array_a)) print(array_a.ndim) Output : 1 위의 결과와 같이 type() 함수를 통해 numpy.ndarray 라는 것을 확인하였고, .ndim을 통해 배열 차원의 수를 확인하였습니다. 조금 더 차원의 수가 많은 경우는 다음과 같습니다. 다차원 배열의 예시 import numpy as np ..
Template matching (템플릿 매칭) 오늘은 Template matching을 통해 Original Image 내 Template Image와 유사(일치)한 영역을 찾는 알고리즘입니다. 위의 알고리즘을 적용하기 위해 필요한 사항들은 다음과 같습니다. ※ opencv의 cv2.matchTemplate(), cv2.minMaxLoc() 함수 사용 Original Image (원본 이미지) Template Image (템플릿 이미지) Template matching 방법 위의 3가지 사항을 적용하기 이전, cv2.minMaxLoc() 함수에 대해서 알아보겠습니다. cv2.minMaxLoc() : array에서 global minimum(전역 최소값)과 global maximum(전역 최대값)을 구하..
Kmeans Clustering 오늘은 Kmeans Clustering 알고리즘을 통해 Imgae Segmentation을 해보고 해당 결과를 통해 3-D Scatter Plot 까지 진행 해보도록 하겠습니다. ※opencv의 cv2.kmeans() 함수 사용 이미지 불러오기 import cv2 import matplotlib.pyplot as plt img_path = "..." img = cv2.imread(img_path) # cv2.imshow("Original Image", img) # cv2.waitKey(0) # cv2.destroyAllWindows() plt.figure("Original Image") plt.axis("off") plt.imshow(cv2.cvtColor(img, cv2..