반응형

OpenCV 90

[Open CV] 이진 영상 처리 _ 모폴로지 _ 열기와 닫기

이진 영상의 열기 ( Opening ) 연산 Opening ( 열기 ) = Erosion ( 침식 ) -> Dilation ( 팽창 ) 이진 영상의 닫기 ( Closing ) 연산 Closing ( 닫기 ) = Dilation ( 팽창 ) -> Erosion ( 침식 ) 아래 이미지를 활용하여 열기 연산 효과를 먼저 보면 먼저 열기 연산을 하게되면 침식 연산을 먼저 하게된다. 그럼 객체들을 깎아내게 되는데 객체 주변의 한두픽셀 노이즈객체들을 제거할 수 있게된다. 즉, 작은 돌기, 작은 객체가 사라지고, 얇은 연결선이 끊어지는 효과를 얻을 수 있다. 닫기 연산을 하게 되면 팽창 연산을 먼저 하게되는데 객체들 내부에 있는 작은 홀들을 채워주게된다. 즉, 작은 홈, 작은 홀들이 사라지고 얇은 연결선이 두꺼워 ..

Program/OPEN_CV 2022.06.08

[Open CV] 이진 영상 처리 _ 모폴로지 _ 침식과 팽창

모폴로지 ( Morphology ) 연산이란? - 영상을 형태학적인 측면에서 다루는 기법 * 영상을 다룰때 모양정보에 대한 것을 다루는 기법 - 다양한 영상 처리 시스템에서 전처리 ( pre-processing ) 또는 후처리 ( post-processing ) 형태로 널리 사용 - 수학적 모폴로지 ( mathematical morphology ) 구조 요소 ( Structuring element ) - 모폴로지 연산의 결과를 결정하는 커널, 마스크, 윈도우 * 3x3 정방형 행렬을 정의하고 전체영상을 쭉 스캔하면서 모양정보를 조금씩 Modify 하는 연산 이진 영상의 침식 ( erosion ) 연산 - 구조 요소가 객체 영역 내부에 완전히 포함될 경우 고정점 픽셀을 255로 설정 - 침식 연산은 객체 ..

Program/OPEN_CV 2022.06.07

[Open CV] 이진 영상 처리 _ 모폴로지 _ 지역 이진화

불균일한 조명성분이 있는 영상에대한 조명 이진화 기법에 대한 설명이다. 저번 영상에서 쌀알들이 조명이 균일하지 않아 어떤 부분은 보이고 어떤부분은 보이지 않는 현상이 있었다. 위 이미지처럼 영상 하단 부분은 평균보다 어둡기때문에 쌀알이 잘 표현되지 않는 듯한 모습을 볼 수 있다. 그럼 이처럼 균일하지 않은 조명의 영향을 해결하기 위해서는 픽셀 주변에 작은 윈도우를 설정하여 지역 이진화를 수행해야한다. 고려해야할 상황으로는 - 윈도우의 크기는 ? - 윈도우 형태는? Uniform? Gaussain? 부분 영상을 잘라냈을때 중앙을 가중치를 더 줄것인지 등에 대한 고려 - 윈도우를 겹칠 것인가 ? Overlap? Non-Overlap? - 윈도우 안에 배경 또는 객체만 존재한다면 ? 부분영상내부에 Backgr..

Program/OPEN_CV 2022.06.06

[Open CV] 이진 영상 처리 _ 모폴로지 _ 자동이진화 ( OTSU )

임계값 자동 결정 방법 - 영상의 히스토그램이 bimodal ( 쌍봉분포 ) 이고, 전경 & 배경 픽셀 분포가 비슷하면 쌍봉 분포의 중앙값을 픽셀 값 평균으로 잡는다. - 히스토그램이 binmodal 이지만, 전경&배경 픽셀 분포가 아래와 같이 크게 다르다면 어떻게 잡아야 되는가? Otsu 이진화 방법 - 입력 영상이 배경 ( background ) 과 객체 ( object ) 두 개로 구성되어 있다고 가정 Bimodal histogram - 임의의 임계값 T에 의해 나눠지는 두 픽셀 분포 그룹의 분산이 최소화되는 T를 선택 - 일종의 최적화 알고리즘 ( optimization algorithm ) * 1979년도에 발표된 논문으로 아주 오래된 알고리즘임에도 불구하고 접근이라든지 , 계산의 효율 등의 면..

Program/OPEN_CV 2022.06.05

[Open CV] 이진 영상 처리 _ 영상의 이진화

영상의 이진화 ( Binarization ) 란? - 영상의 픽셀 값을 0 또는 255 (1) 로 만드는 연산 - 배경 ( Background ) vs 객체 ( Object ) 관심 영역 vs 비관심 영역 위 이미지를 보게되면 염색되어있는 이미지 또는 글씨처럼 배경과 객체로 구분할 수도 있고 사과이미지처럼 관심영역과 비관심 영역으로 구분할수도 있다. 그레이스케일 영상의 이진화 그레이스케일의 이진화는 위 처럼 Threshold 라는 값을 임계값을 기준으로 기준값보다 낮으면 0 , 기준값보다 높으면 255로 변환시켜주어 영상전체를 이진화 시켜준다. 임계값 함수 cv2.threshol( src, thresh, maxval, type, dst ) -> retval, dst src : 입력영상. 다채널, 8비트 ..

Program/OPEN_CV 2022.06.04

[Open CV] 영상의 특징 추출 _ 실전코딩 ( 동전 카운터 )

동전 카운터 - 영상의 동전을 검출하여 금액이 얼마인지를 자동으로 계산하는 프로그램 - 편의상 동전은 100원짜리와 10원짜리만 있다고 가정 구현할 기능 - 동전 검출하기 -> 허프 원 검출 - 동전 구분하기 -> 색상 정보 이용 동전 검출하기 - 동그란 객체는 동전만 있다고 가정 cv2.HoughCircles() 함수 사용 - 영상 크기 : 800x600 (px) - 동전크기 100원 : 약 100x100 (px) 10원 : 약 80x80 (px) 크기정보로 구분하게 되면 100원짜리가 90px 10원짜리가 90px 이 될 수 있기때문에 크기정보보다는 색상 정보로 구분하는 것이 확실해보인다. 따라서 왼쪽 10원짜리들의 Hue 값을 보게되면 빨간색의 0에 가까운 값을 갖고있고 오른쪽 100원짜리들의 Hu..

Program/OPEN_CV 2022.06.03

[Open CV] 영상의 특징 추출 _ 허프변환 _ 원 검출

허프 변환을 응용하여 원을 검출할 수 있다. 허프 직선 변환처럼 원의 방정식 ( x - a )^2 + (y - b)^2 = c^2 을 사용하여 파라메타 공간으로 변환하여 a , b , c 를 사용하여 원을 검출할 수는 있다. 하지만 위 3개의 파라메타를 이용하여 공간변환을 하는 것은 시간이 오래걸리기때문에 위와같은 방법으로는 사용하지 않는다. 그래서 속도 향상을 위해 Hough Gradient Method 방법을 사용한다. 입력 영상과 동일한 2차원 평면 공간에서 축적 영상을 생성 에지 픽셀에서 그래디언트 계싼 에지 방향에 따라 직선을 그리면서 값을 누적 원의 중심을 먼저 찾고, 적절한 반지름을 검출 단점 : 여러개의 동심원을 검출 못함 - 가장 작은 원 하나만 검출됨 아래와 같이 원의 에지로 판단되는 ..

Program/OPEN_CV 2022.06.02

[Open CV] 영상의 특징 추출 _ 허프변환 _ 직선 검출

허프 변환 ( Hough Transform ) 직선 검출이란? - 2차원 영상 좌표에서의 직선의 방정식을 파라미터 ( parameter ) 공간으로 변환하여 직선을 찾는 알고리즘 에지 추출 결과는 보통 검은배경에 흰 라인형태로 에지가 나타나게 된다. 즉, 입력영상에서 에지가 있는 좌표를 모두 추출할 수 있다는 의미이다. 그럼 그 좌표를 이용하여 직선 또는 곡선의 정보를 추출해내고자 하는 시도들이 많이 있는데 그 중 가장 대표적인게 허프변환 ( 직선검출 ) 이다. 그렇지만 직선의 정보를 추출하기 위한 알고리즘이라고 생각하기보다는 위 설명처럼 직선의 방정식을 파라미터 공간으로 변환하여 누적행렬을 이용해서 원하는 파라메타를 찾는 방정식 ( 알고리즘 ) 이라고 생각하는 것이 맞다. 위처럼 y = ax + b 를..

Program/OPEN_CV 2022.06.01

[Open CV] 영상의 특징 추출 _ 캐니 엣지 검출

캐니 에지 검출 - 1986년 Jhon F. Canny 라는 사람이 개발한 Edge 검출 알고리즘이다. - OpenCV 에 구현되어있어 많은 사람들이 사용하고 있는 방식 중 하나이다. 지난 시간에 구현한 Sobel Filter는 Threshold를 어느 부분에 두는지에 따라 Edge가 두껍게 잡힐지 얇게 잡힐지가 결정되는 단점이 있었는데 CannyEdge는 기본적으로 Sobel Filter를 쓰지만 Edge를 좀 더 정확하게 검출한다. 그 방식으로는 정확한 검출 ( Good Detection ) : 에지가 아닌 점을 에지로 찾거나 또는 에지인데 에지로 찾지 못하는 확률을 최소화 정확한 위치 ( Good Localization ) : 실제 에지의 중심을 검출 Sobel Filter는 5개의 픽셀을 에지로 ..

Program/OPEN_CV 2022.05.31

[Open CV] 영상의 특징 추출 _ 그래디언트와 엣지 검출

영상의 그래디언트 ( Gradient ) - 함수 f ( x , y )를 x축과 y축으로 각각 편미분 ( partial derivative ) 하여 벡터 형태로 표현한 것 영상이라는 것은 2차원의 평면이기때문에 미분을 할 때 x방향과 y 방향을 각각 따로 미분을 해줘야하는데 그렇게 되면 수식이 지저분해질 수 있기 때문에 묶어서 하나로 표현한 것을 Gradient 라고 한다.즉, x 방향의 미분값과 y 방향의 미분값을 묶어서 하나의 수로 표현하는 방법이다. 그래디언트 크기 : ∣∇f∣=fx​²+fy​²​ 그래디언트 방향 : θ=tan−¹(fy/fx​​) 그럼 이 크기와 방향이 의미하는 것은 무엇인가? 실제 영상에서 구한 그래디언트 크기와 방향 - 그래디언트 크기 : 픽셀 값의 차이에 비례 , 픽셀값이 얼만..

Program/OPEN_CV 2022.05.30
반응형