openCV

    [openCV] ROI

    이번에는 전에도 종종 기술되었던 ROI를 정리를 해보려고 한다. Region Of Interest 이미지 내 관심 영역 지정 단어 약자에서도 볼 수 있듯이 이미지 내에서 사용자가 원하는 구간만 추출할 수 있는 기능 중 하나이다. openCV에서 image를 load하는 경우 또는 video를 capture할때에 pixel 단위로 numpy array에 저장하기 때문에 우리는 이를 이용해서 특정 position에 접근하여서 crop과 같은 다양한 행위를 해준다고 생각하면 될 거 같다. 1. Real_Time_ROI import cv2 #Check The Pressing Status Of Mouse mouse_is_pressing = False #Reset The Value start_x, end_x, st..

    [openCV] Draw Function

    오늘은 openCV에서 지원하는 Draw Function들에 대해서 공부해보자 :D 0. Coordinate_system openCV에서는 이미지를 사용할때 numpy 배열에 담겨서 픽셀화가 된다. 픽셀화가 되기 때문에 저번에 이미지 연산 파트에서 다뤘던거처럼 각 좌표에 접근이 가능해진다. 2021/02/02 - [openCV] - [ openCV ] Image Operation ( Blending, Operate Image Bit, ROI ) [ openCV ] Image Operation ( Blending, Operate Image Bit, ROI ) 오늘은 이미지 연산에 대해서 정리를 해볼까 한다. 바로 알아보자 1. Blending 첫번째 개념은 블렌딩이다. 블렌딩은 2개의 이미지의 투명도를 조..

    [ openCV ] Image Operation ( Blending, Operate Image Bit, ROI )

    오늘은 이미지 연산에 대해서 정리를 해볼까 한다. 바로 알아보자 1. Blending 첫번째 개념은 블렌딩이다. 블렌딩은 2개의 이미지의 투명도를 조정하여 2개의 이미지가 겹쳐보이도록 만드는 기술이다. openCV는 블렌딩을 위해 addWeighted() 함수를 이용한다. addWeighted() 함수는 밑과 같은 수식으로 동작한다 상수 alpha, beta가 Threshold로 이용되며, 입력 이미지 img1, img2의 투명도를 조절한다. 다만 Threshold인 alpha, beta가 가질 수 있는 범위는 0.0 ~ 1.0 사이며 0.0에 가까울 수록 투명한 상태가 되며 1.0에 가까워진다면 불투명해진다. gamma는 가중치 합에 추가로 더하는 상수이다. 이렇게 이론으로 주저리주저리 쓰는 것보다 직..

    [openCV] Binarization

    오늘은 이진화에 대해서 정리하려한다😑 이진화는 무엇일까? 우선 이진화는 원본 Image를 바로 Binarization을 시킬 수가 없다. 원본 Image -> GrayScale -> Binary Image로 Binarization을 위해서는 GrayScale을 한번 거쳐야 한다. "아니 그래서 이진화가 뭐냐니까?" 이진화를 이해하기 앞서 Threshold라는 용어를 짚고 넘어가겠다. Threshold는 임계값을 의미하며 사용자가 특정 수치값을 정해두면 그 기준값을 통해서 값을 도출한다. 쉽게 말하면 그냥 어떤 조건을 판별할때 이용하는 기준값이라고 생각하면 될 거 같다. 이진화는 Segmentation 방법 중 가장 간단한 방법에 속한다. Segmentation은 Image를 분리하여서 원하는 부분 혹은 ..

    [openCV] Graphic User Interface

    제목에 쫄지 말자 그저 GUI의 Full Name일뿐😬 우선 오늘은 제목에 나와 있듯이 openCV에서 지원하는 GUI를 다뤄보면서 공부해보자 0. What Is Canny Edge? 코드를 보기 전에 Canny Edge가 뭔지 알아보자🤔 Canny Edge는 Edge를 찾을 때 가장 인기가 높은 알고리즘 중 하나이다 John F Canny가 만든 알고리즘으로 다단계 알고리즘으로 이루어져 있다. 1. 노이즈 제거 Image에서 Noise가 있으면 Edge를 제대로 찾는 것이 어려울 수 있습니다. 따라서 첫단계로 5x5 가우시안 필터(Gaussian Filter)를 이용해 Image의 Noise를 줄여줍니다. 2. Gradient 값이 높은 부분 찾기 가우시안 필터로 Noise가 제거된 이미지를 Sobel..

    [openCV] Numpy Array

    저번주에 작성했던 2021/01/02 - [Nefus] - openCV - 기초부터 다지기에 이어서 오늘은 Numy Array가 openCV에서 어떻게 활용되는지에 대해서 정리를 해볼려고 한다. 우선 어떻게 활용되는지 알아보기 전에 Numpy Array가 뭔지 알아야하지 않겠는가? 🤔 Nump Array이란? Numpy는 과학 계산을 위한 라이브러리로 만들어졌다. 다차원 배열을 처리하는데 필요한 여러 유용한 기능을 제공한다. openCV에서 Image는 사용하는 언어에 따라 다른 Object에 저장이 된다. C++의 경우는 Mat Class Type의 객체가 저장이 된다. Python의 경우에서는 Numpy Array에 저장이 된다. 나는 Python으로 openCV를 공부하는 입장이므로 Numpy 활용..