[OpenCV] 라벨링 – 2. 응용(connectedComponentsWithStats )
이전 글에서 라벨링에 대해 기초적인 내용을 알아보았습니다. 이번 글에서는 객체의 정보를 알아내는 방법에 대해 알아보겠습니다. 기존 문제점 라벨링을 수행하여 객체의 개수를 파악하고 행렬에 객체의 번호를 부여하더라도 가공된 정보는 아닙니다.객체의 영역이나 무게중심 좌표 등, 개발자가 행렬의 …
OpenCV C++
이전 글에서 라벨링에 대해 기초적인 내용을 알아보았습니다. 이번 글에서는 객체의 정보를 알아내는 방법에 대해 알아보겠습니다. 기존 문제점 라벨링을 수행하여 객체의 개수를 파악하고 행렬에 객체의 번호를 부여하더라도 가공된 정보는 아닙니다.객체의 영역이나 무게중심 좌표 등, 개발자가 행렬의 …
이전 글까지 영상에 대해 알아보고, 영상의 배경과 객체를 이진화를 통해 구별하였습니다. 이번 글에서는 이렇게 구별된 객체들을 각각의 객체로 구별 및 분석하는 라벨링 기법(또는 레이블링이라고도 함)에 대해 알아보겠습니다. 이해 영상에서 라벨링은 보통 이진화 영상에서 수행됩니다. 라벨링은 이진화된 영상의 검은색 픽셀(0)을 배경으로, 흰색 …
영상의 침식과 팽창에 대해 잘 모르신다면 여기를 참고하는 것이 좋습니다. 침식과 팽창 연산의 단점 이전 글에서 영상에서 침식(erode)와 팽창(dilate) 연산하여 잡음을 제거하는 작업을 해보았습니다. 이러한 연산의 단점은 기존 영상의 객체 영역을 변형시킨다는 것입니다. 위 예시에서만 …
이번 글에서는 모폴로지의 기본적인 설명과 침식과 팽창에 대해 알아보겠습니다. 우선 모폴로지(morphology)는 형태학을 의미하며, 생물의 구조, 외형 등등 형태 또는 모양에 관한 학문을 의미합니다.영상처리에서 모폴로지는, 영상에서 객체의 형태 및 구조에 대해 분석하고 처리하는 기법을 의미합니다.모폴로지는 주로 객체를 단순화하거나 잡음 …
이전 글에서는 영상의 이진화에 대해서 알아 보았고 threshold 에 대해서도 알아보았습니다. 이제 threshold 함수로 임계값을 설정하고, 임계값보다 크면 255, 작으면 0으로 만드는 이진화 작업을 할 수 있습니다.하지만 아래와 수도쿠 이미지에서는 한곳은 너무 어둡고, 한곳은 너무 밝아서 threshold …
이번 글에서는 그레이스케일 영상의 이진화에 대해 간략한 설명과 threshold 함수의 사용법에 대해 알아보겠습니다. 설명 영상의 이진화는 픽셀을 검은색 또는 흰색같이 두 개의 값으로 나누는 작업을 말합니다. 영상에서 의미가 있는 관심 영역(ROI)과 비관심 영역을 구분할 때 이진화가 사용됩니다. 예를 들어 특정 …
이번 글에서는 영상의 논리 연산, 비트단위 연산인 AND, OR, XOR, NOT에 대해 알아보겠습니다. 영상에서의 비트단위 연산은, 영상에서의 픽셀값을 비트단위로 표현하여 논리연산을 수행하는 것을 말합니다.비트 단위 연산이라는 것에 대해서 처음 들어보신다면 여기를 참고하시길 바랍니다. 함수 원형 AND, OR, …
안녕하세요 이번 글에서는 영상에서의 산술 연산 곱셈 나눗셈에 대해 알아보겠습니다. 이전 글에서도 설명했지만 곱셈, 나눗셈은 잘 사용되지 않습니다. 곱셈 OpenCV에서는 곱셈 연산을 할 경우 multiply 함수를 사용합니다. 샘플 코드는 아래와 같습니다. 실행 결과는 아래와 같습니다. src1과 src2가 …
안녕하세요 이번 글에서는 영상에서의 산술 연산에 대해 알아보겠습니다. OpenCV에서 영상은 행렬로 표현하기 때문에 두개의 영상을 더하거나 빼는 연산을 수행할 수 있습니다.영상의 덧셈, 뺄셈, 곱셈, 나눗셈 모두 가능하지만 곱하기, 나누기는 잘 사용하지 않습니다.먼저 덧셈, 뺄셈 연산에 대해 알아보겠습니다. …
번 글에서는 허프 변환을 이용하여 원 검출 하는 방법에 대해 알아보겠습니다. 우선 원 검출 방법에 대해 알아보겠습니다. 중심 좌표가 (a, b)이고 반지름이 r인 원의 방정식은 아래와 같습니다. 위 방정식에서 파라미터는 3개이므로, 3차원 파라미터 공간에서 축적 배열을 정의 …