[TwinCAT 3 메뉴얼] TwinCAT Vision Filtering

 

TwinCAT Vision Filtering

이미지에서의 필터링 Filtering) 은 여러 수식을 이용하여 이미지의 픽셀 행렬을 다른 값으로 바꾸어 이미지를 변형하는 것을 의미합니다.

이것을 이용하여 이미지를 흐리게 날카롭게 또는 노이즈 제거 등 다양한 효과를 줄 수 있습니다.

본 매뉴얼에서는 TwinCAT Vision에서 제공하는 주요 Filter Functions을 설명하고 각 함수 사용방법을 제공합니다.

l  Bluring

l  Edge detection

l  Morphological operator

해당 Functions 사용을 위해서는 (TF7100) TC3 Vision Base 기본 라이선스가 요구됩니다.

 

1.    Blurring Filter

2.    Edge Detection

3.    Morphological operator

 

1.  Blurring Filter

노이즈를 제거하거나 경계선을 흐릿하게 하여 이미지를 부드럽게 하는 필터로 가우시안(Gaussian)필터, 중간(Median) 필터, 양방향(Bilateral)필터 등이 있습니다.

   Bilateral Filter

가우시안 필터를 사용하면 이미지의 Edge 도 흐려 지는데, Bilateral Filter 양 방향 필터는 이미지를 부드럽게 하지만 Edge를 유지합니다.

양방향 필터는 각 픽셀 강도에 대해 주변 픽셀의 가중 평균값을 계산합니다. 가중치는 픽셀이 얼마나 멀리 떨어져 있는지 뿐만 아니라 강도의 차이에 따라 달라 지는데 픽셀 값이 차이가 너무 크면 가중치가 0에 가까운 값이 되어 합쳐지지 않으므로 날카로운 Edges 가 유지됩니다. Edge를 보존하면서 잡음제거에 특히 적합합니다.

 

 

1. 함수: F_VN_BilateralFilter(Exp)

2. Input 변수

이름

Type

설명

ipSrcImage

ITcVnImage

소스 이미지

TCVN_ET_USINT Type이여야 하며 채널이 1 또는 3개여야 한다.

ipDestImage

Reference To ITcVnImage

대상 이미지(필요한 경우 적절한 대상 이미지가 생성된다)

nDiameter

DINT

필터링에 사용되는 픽셀 주변의 직경으로 필터영역의 크기를 결정(5, 7, 9)

<= 0이면 fSigmaSpace 따라 자동으로 선택된다.

fSigmaColor

REAL

색상 공간 필터링(>0) 사용되는 시그마

값이 클수록 색상이 함께 혼합된다.

fSigmaSpace

REAL

공간 필터링(>0) 조정하는데 사용되는 시그마

값이 클수록 픽셀간 영향을 미칠 있다.

hrPrev

HRESULT

이전 작업의 결과를 나타내는 HRESULT

hrPrev False이면 작업이 실행되지 않는다.

 

3. Application

hr := F_VN_BilateralFilter(
    ipSrcImage      :=  ipImage,
    ipDestImage     :=  ipImageRes,
    nDiameter       :=  7,
    fSigmaColor     :=  100,
    fSigmaSpace     :=  100,
    hrPrev          :=  hr
);

4. 요구 라이선스: TC3 Vision Base

예시 이미지) 


2.  Edge Detection

Edge란 영상에서 픽셀의 밝기 값이 급격하게 변화하는 부분입니다.

Edge는 영상안에 있는 객체의 경계를 가리키므로, 모양(Shape)과 크기, 방향성 등을 탐지할 수 있는 여러 정보가 담겨 있습니다.

    Sobel Filter

Sobel 필터는 Edge(가장자리) 감지에 사용됩니다.

Sobel이미지의 그라데이션을 표시하기 위한 간단한 선형 필터이며, 확장된 Sobel 필터를 사용하여 첫 번째, 두 번째 또는 혼합된 이미지 유도체를 계산합니다.

인접한 픽셀 강도의 전에 대한 n차 도함수를 근사화 하여 Edge를 감지하는데 사용할 수 있고, 파생 상품도 음수 값을 가지므로 결과 이미지에 대해 부호 있는 요소 유형을 사용하는 것이 좋습니다. (: TCVN_ET_INT)

 Sobel 필터는 x, y, 대각선 방향의 Edge 검출에 모두 강합니다.


1.     함수: F_VN_SobelFilter(Exp)

2.     Input 변수

이름

Type

설명

ipSrcImage

ITcVnImage

소스 이미지

ipDestImage

Reference To ITcVnImage

대상 이미지(필요한 경우 적절한 대상 이미지가 생성된다)

eDestDepth

ETcVnElementType

대상 이미지 깊이

nXOrder

UDINT

X 미분 차수(0, 1, 2)

nYOrder

UDINT

Y 미분 차수 (0, 1, 2)

hrPrev

HRESULT

이전 작업의 결과를 나타내는 HRESULT

hrPrevFalse이면 작업이 실행되지 않는다.

 

3.     Application

hr := F_VN_SobelFilter(
    ipSrcImage  :=  ipImageIn,
    ipDestImage :=  ipImageRes,
    eDestDepth  :=  TCVN_ET_USINT,
    nXOrder     :=  1,
    nYOrder     :=  1,
    hrPrev      :=  hr,
);

4.     요구 라이선스: TC3 Vision Base

예시 이미지)


3.  Morphological Operator

모폴로지(Morphology)란 형태학을 의미하며, 형상의 형태를 분석하고 처리하는 기법으로 미리 기하학적 형태를 알고 있는 대상 물체의 정보를 반영하여 영상 내 원하는 부분만 추출하는데 사용됩니다.

이미지 객체의 모양을 단순화시키거나 잡음을 제거하는 용도로도 사용되며, 일반적으로 바이너리(binary)또는 그레이스케일(grayscale) 이미지에 사용됩니다.

모폴로지 연산으로 침식(Erosion), 팽창(Dilation) 2개를 조합한 열림(Opening), 닫힘(Closing)이 있습니다.


   함수: 모폴로지 연산자 적용을 위해 두가지 함수가 사용됩니다.

-      F_VN_MorphologicalOperator : 원본 이미지에 모폴로지 연산을 하기위한 함수

-      F_VN_CreateStructuringElement : 모폴로지 연산자의 이미지에 적용되는 필터 영역을 생성하는 함수

   모폴로지 연산자

입력(원본) 이미지

이름

설명

예시 이미지

TCVN_MO_EROSION

개체(: 흰색 픽셀영역)을 축소하여 구조 요소보다 작은 영역을 완전히 제거

TCVN_MO_DILATION

개체를 확장하여 개체 내부의 작은 구멍을 닫는다.

TCVN_MO_OPENING

침식(Erosion)을 먼저하고 팽창(Dilation)을 적용한다. 구조 요소보다 작은 개체는 제거되지만 외부 모양은 거의 동일하게 유지된다.

TCVN_MO_CLOSING

팽창을 적용하고 침식을 적용한다. 구조 요소에 맞는 오브젝트 내부의 구멍은 완전히 닫혀 있는 반면 외부 모양은 대체로 동일하게 유지된다.

TCVN_MO_GRADIENT

팽창과 침식의 차이.

TCVN_MO_WHITE_TOPHAT

입력 이미지와 열림(Opening)의 차이.

TCVN_MO_BLACK_TOPHAT

입력 이미지와 닫힘(Closing)의 차이.

TCVN_MO_OPENING_BY_RECONSTRUCTION

개구부에 의해 제거되지 않은 개체의 후속 재구성으로 개구부

TCVN_MO_CLOSING_BY_RECONSTRUCTION

폐쇄로 제거되지 않은 객체의 후속 재구성으로 폐쇄.

TCVN_MO_WHITE_TOPHAT_BY_RECONSTRUCTION

흰색 tophat에 의해 제거되지 않은 개체의 후속 재구성이 있는 흰색 tophat

TCVN_MO_BLACK_TOPHAT_BY_RECONSTRUCTION

검정 tophat에 의해 제거되지 않은 개체의 후속 재구성이 있는 검정 tophat



이상 자세한 내용은 네이버 카페(TwinCAT Vision Filtering)의 첨부파일을 참고해주세요.

 


  문서의 무단전재  재배포를 금지합니다.

  문서는 Beckhoff Automation 한국 지사에서 교육을 목적으로 제작되었으며원문에 대한 잘못된 이해와 해석이 있을  있습니다정확한 내용은 Beckhoff Automation에서 배포하는 설명서인 Infosys (https://infosys.beckhoff.com/) 기준으로 하며 불일치하는 내용이 있을 경우 Infosys 내용을 우선시합니다.

  문서는 미완성본으로 추후 업데이트 내용이 있을  있습니다.



2021.12.10

작성자: Beckhoff Korea / Ivy Park

댓글

이 블로그의 인기 게시물

[IPC 메뉴얼] BECKHOFF PC 기본 설정 방법

트라이텍, EtherCAT과 DeviceNet [월간CONTROL 2013/11]

[쉽고 간단한 안내서] TwinCAT PLC HMI와 TwinCAT HMI