import cv2 import numpy as np import matplotlib.pyplot as plt 이미지 그라디언트 (Image Gradients) 그라디언트(Gradient)는 기울기, 증감, 변화도, 즉 변화하는 정도를 나타내는 단어이다. 이미지 내에서 픽셀값의 변화가 가장 큰 부분은 일반적으로 경계선(edge) 및 모서리(corner)부분이다. 따라서 Image Processing에서는 이를 잘 이용하여 영상의 경계선(edge) 및 그 방향을 찾는 용도로 활용된다. Edge Detection 변화하는 정도는 수학적으로 미분과 관련이 깊다. 이미지는 2차원이기 때문에 수직 방향과 수평 방향으로 미분해주면 수직 방향으로 어떻게 변화하는지, 또는 수평 방향으로 어떻게 변화하는지 알 수 있다...
데이터 분석 & 시각화 검색 결과
import cv2 import numpy as np import matplotlib.pyplot as plt Morphological Transformation 이미지 프로세싱에서 Morphology(형태학)는 이미지를 Segmentation 하여 단순화, 제거, 보정을 통해 형태를 파악하는 목적으로 사용된다. 기본적으로 바이너리 이미지 상에서 이루어지며 원본 이미지와 이미지에 가해지는 변형을 결정하는 구조화된 요소(커널과 같은 역할), 2개의 입력값을 가진다. 그래서 Morphological Transformation(형태학적 변환)역시 이미지 필터링을 사용하여 영역을 변화시키는 방법중 하나라고 인식할 수 있다. 일반적으로 Binary나 Grayscale 이미지에 사용되며, Dilation(팽창), ..
[OpenCV Practice 10 - 1] 이미지 필터링 (Image Filtering & Blurring) OpenCV: Smoothing Images Goals Learn to: Blur images with various low pass filters Apply custom-made filters to images (2D convolution) 2D Convolution ( Image Filtering ) As in one-dimensional signa.. dsbook.tistory.com def onChange(x): pass def blurringTrackbar(): img = cv2.imread('atom-4.png') cv2.namedWindow('blurring', cv2.WINDOW_..
OpenCV: Smoothing Images Goals Learn to: Blur images with various low pass filters Apply custom-made filters to images (2D convolution) 2D Convolution ( Image Filtering ) As in one-dimensional signals, images also can be filtered with various low-pass filters (LPF), high-pass filt docs.opencv.org import cv2 import numpy as np import matplotlib.pyplot as plt 이미지 주파수 이미지도 음성 신호처럼 주파수로 표현할 수 있다. 일반..
이미지 위에 임의의 4점을 선택하면 그 구역 내 이미지를 원근 변환하는 코드를 작성해보았다. homograpyTransformation 함수를 통해 4점을 입력받으면 calPoint 함수로 상하좌우를 지정해주기 때문에 전처럼 "좌상 → 좌하 → 우상 → 우하" 순으로 점을 찍지 않아도 되며, 변형 후 각 점의 좌표와 원근 변환한 이미지 크기도 같이 계산해준다. img = cv2.imread('athletic-field-1867053_1920.jpg') count = 0 blue, green, red, yellow = (255, 0, 0), (0, 255, 0), (0, 0, 255), (0, 255, 255) point_array = [] def calPoint(ary): total = np.sum(ar..
import numpy as np import cv2 import matplotlib.pyplot as plt 2D 이미지 기하학적 변형 (Transformation) → 행렬 변환 1. 강체변환 (Ridid-Body) : 크기와 형태를 유지한 채 위치와 방향을 바꾸는 변환 (ex. 위치변경(Translation), 회전(Rotation)) 2. 유사변환 (Similarity) : 강체변환에 크기의 변환도 허용 (ex. 크기변경(Scaling)) 3. 선형변환 (Linear) : Vector 공간에서의 이동. (회전, 크기변경 및 반전, 밀림도 가능하지만 위치변경은 못한다.) 4. Affine : 선형변환과 이동변환까지 포함. 선의 수평성은 유지 5. Perspective : Affine 변환에서 수평성..
import numpy as np import cv2 import matplotlib.pyplot as plt 2D 이미지 기하학적 변형 (Transformation) → 행렬변환 1. 강체변환 (Ridid-Body) : 크기와 형태를 유지한 채 위치와 방향을 바꾸는 변환 (ex. 위치변경(Translation), 회전(Rotation)) 2. 유사변환 (Similarity) : 강체변환에 크기의 변환도 허용 (ex. 크기변경(Scaling)) 3. 선형변환 (Linear) : Vector 공간에서의 이동. (회전, 크기변경 및 반전, 밀림도 가능하지만 위치변경은 못한다.) 4. Affine : 선형변환과 이동변환까지 포함. 선의 수평성은 유지 5. Perspective : Affine 변환에서 수평성이..
BFMatcher는 특징 디스크립터를 전수 조사하는 것이 특징이며, cv2.BFMatcher()를 사용할 때 상호 매칭까지 하게 되면 작업 속도가 느리다는 단점이 있다. [OpenCV Programming] 디스크립터(Descriptor) 특징을 나타내는 값을 매칭하기 위해서는 회전이나 크기 등에 영향이 없어야 하며, 이를 위해서는 feature descriptor(특징 디스크립터)가 필요하다. 특징 디스크립터는 keypoint의 주변의 밝기나 색상 dsbook.tistory.com 이를 개선한 것이 FLANN(Fast Library for Approximate Nearest Neighbors Matching)이다. FLANN은 가장 가까운 이웃의 근사 값으로 매칭을 수행하며, Machine Learni..
1. MeanShift MeanShift는 대상 객체의 색상 정보를 평균 이동에 대해 추적하는 알고리즘으로, 연산이 이루어지는 과정은 다음과 같다. 1) 영상에서 추적할 대상을 선정한 후 HSV 컬러 Space의 H(Hue)값 히스토그램 계산 2) 전체 영상을 과정 1의 히스토그램 계산 후 역투영 처리 3) 역투영된 영상에서 MeanShift로 추적 역투영이란 전체 영상의 색상 정보와 대상 객체의 색상 정보의 비율을 0~255 구간 내로 정규화한 것이다. opencv는 히스토그램 역투영 결과에서 평균 이동으로 대상 객체의 위치를 찾아주는 함수 cv2.meanShift()를 지원한다. import cv2 import numpy as np capture = cv2.VideoCapture("video.avi"..
정렬 DataFrame과 Series를 정렬하는 데에는 .sort_values() 함수를 사용한다. 해당 함수는 DataFrame과 Series에서 특정 칼럼의 값으로 정렬을 하는 경우에 사용한다. 파라미터 : by / ascending / inplace by : 어떤 칼럼의 데이터 값을 기준으로 정렬을 할 것인지에 대해서 해당 열의 이름을 인자로 넣어준다. ascending(= True) : 디폴트 값이 True이고 True로 한다면 오름차순으로, False는 내림차순으로 정렬한다. inplace : 이전의 함수들과 동일한 역할을 하는 파라미터이므로 별도의 설명을 생략한다. import pandas as pd import numpy as np titanic_df = pd.read_csv('train.c..
최근댓글