본문 바로가기
  • AI 개발자가 될래요

컴퓨터비전15

[Python/OpenCV] 이미지 좌우/상하 반전 하는 법, cv.flip() [Python/OpenCV] 이미지 좌우/상하 반전 하는 법, cv.flip() 이미지 좌우 혹은 상하 반전이 필요한 순간은 언제? 파이썬을 이용하여 opencv의 내장 함수로 실시간 웹캠을 읽어올 때에 기본값은 좌우 반전이 되어있지 않다. 카메라가 나를 비추고 있을 때, 내가 오른 손을 든다면 화면 속의 나는 왼쪽 손을 든 것 처럼 보인다. 이는 사용자와 상호작용하는 UI엔 적합하지 않다. 그래서 우리는 이미지를 좌우반전 할 필요가 있다. 좌우반전 하는 법 Python에서 OpenCV를 이용하여 이미지를 좌우반전 하는 코드는 아래와 같다. img_flip = cv2.flip(img, 1) 원본 이미지를 cv2.flip() 메소드의 첫 번째 입력으로 넣고, 그 뒤에 플래그 1을 넣는다. 이 메소드는 플래.. 2024. 1. 2.
[OpenCV] SIFT, SURF에 대한 간단 설명 SIFT(Scale-Invariant Feature Transform) 이미지의 크기와 회전에 불변하는 특징을 추출하는 알고리즘 알고리즘 가우시안 피라미드 생성 DOG 피라미드 생성 극점 검출 약한 극점 제거하고, 나머지를 키포인트(특징점)로 삼음 키포인트 orientation(방향) 계산 키포인트 descriptors(기술자) 계산 1. 가우시안 피라미드 생성 한 옥타브 내에선 토대 영상을 점진적으로 가우시안 스무딩 다음 옥타브는 이전 옥타브의 4번째 영상을 가로, 세로 1/2배씩 한 것을 토대 영상으로 2. DOG 피라미드 생성 같은 옥타브 내에서 인접한 두 개의 가우시안 스무딩 이미지들을 빼주는 것 3. 극점 검출 극대값, 극소값 위치 찾음 동일한 옥타브 내에 연속된 3장의 DOG 이미지 필요 현재.. 2023. 9. 6.
지역 특징 검출 지역 특징 검출 성능 평가 지표 반복성 분별력 정확성 계산 효율 지역 특징 검출 원리 : 여러 방향으로 밝기 변화가 심한 곳. 모라벡 알고리즘 제곱차의 합(SSD)를 이용해 특징점 검출 w(y, x) 마스크 내의 화소는 1, 그 외 모든 화소는 0 → 박스 내 화소에 대해서만 계산 (v, u)를 변화시켜가며 마스크 화소 각각에 대해 값을 생성 → S(v, u) 맵 생성 현재 조사중인 화소가 c와 같이 변화가 없는 경우 → 코너 아님 a와 같이 여러 방향으로 변화가 큰 경우 → 코너 동서남북 네 방향으로 한 화소만큼 이동시켜 얻은 네 개의 값을 사용 어떤 점이 코너라면 네 방향 모두 변화가 커야 한다고 간주, 네 값의 최솟값을 지역 특징 가능성 값으로 간주 But, 실제 영상은 보다 복잡, 잡음 많음, 동.. 2023. 9. 5.
[Python/OpenCV] cv2.applyColorMap() / custom Colormap 사용법 Python에서 Opencv의 ColorMap을 활용하여 이미지 색상 변경법 이미지의 전체적인 색상을 다른 색상으로 변경하고 싶을 때 opencv의 applyColorMap() 메소드를 이용하면 된다. 메소드 형식은 다음과 같다. 사전 정의된 color map 활용 방식 ◆ applyColorMap() [1/2] void cv::applyColorMap ( InputArray src, OutputArray dst, int colormap ) Python: cv.applyColorMap( src, colormap[, dst] ) -> dst cv.applyColorMap( src, userColor[, dst] ) -> dst #include Applies a GNU Octave/MATLAB equival.. 2023. 6. 21.
[Python] Opencv Colormap 색상 플래그 https://docs.opencv.org/4.x/d3/d50/group__imgproc__colormap.html OpenCV: ColorMaps in OpenCV enum cv::ColormapTypes { cv::COLORMAP_AUTUMN = 0, cv::COLORMAP_BONE = 1, cv::COLORMAP_JET = 2, cv::COLORMAP_WINTER = 3, cv::COLORMAP_RAINBOW = 4, cv::COLORMAP_OCEAN = 5, cv::COLORMAP_SUMMER = 6, cv::COLORMAP_SPRING = 7, docs.opencv.org 2023. 6. 16.
컬러 영상의 히스토그램 매칭(Histogram Matching) / 파이썬 코드 히스토그램 매칭이란? 이미지의 색 분포를 목표 이미지의 색 분포와 비슷하게 하는 알고리즘이다. 히스토그램 매칭의 원리 타겟 이미지(T)의 색 발생 빈도에 따라 원본 이미지(I)의 색 발생 빈도를 바꾸는 것. T에서 가장 많이 나타나는 색을 R에서 가장 빈도수가 높은 색으로 변경한다고 생각하면 되겠다. 이 과정에서 LUT(Look Up Table)을 작성하는데, 그 작성 원리는 다음과 같다. # 히스토그램 매칭 lut = np.zeros((256), dtype=np.uint8) for i in range(256): minDiff = float('inf') for j in range(256): # srcCdf: 소스 이미지의 누적 히스토그램 # dstCdf: 타겟 이미지의 누적 히스토그램 diff = abs.. 2023. 5. 2.