VisualApplets에서의 구현

"NormalizedcrossCorreslation.va"에서는 식 55에 따라 NCC 알고리즘을 사용하여 이미지 내에서 객체를 식별합니다. 그림 387에서는 "NormalizedCrossCorrelation.vad"의 기본 설계 구조를 확인할 수 있습니다.

"NormalizedCrossCorrelation.vad"의 기본 설계 구조

그림 387. “NormalizedCrossCorrelation.vad”의 기본 설계 구조


한 장의 사진에서 Camera Link 의 기본 구성에서 RGB 카메라를 통해 12x12 픽셀 크기의 이미지 커널이 다음과 같이 정의됩니다. FIRkernelNxM 연산자 12x12. 커널 크기는 식별 대상에 따라 달라집니다. 이 대상은 참조 이미지와 동일합니다. 식에서 55. 연산자를 사용하여 하나의 색상 구성 요소(여기서는 빨간색)를 선택합니다. SelectComponent 식 (NCC)에 따라 NCC 알고리즘을 사용하여 물체를 식별하기 위해 55 HierarchicalBox 내에서 NCC. 그 결과, 원본 입력 이미지의 크기를 가지며, 식별된 객체 위치에는 값 “1”이, 그 외 모든 위치에는 “0”이 지정된 이진 이미지가 DMA를 통해 PC로 전송됩니다. 이 예제는 VisualApplets 설치 디렉터리의 examples\Processing\ObjectFeatures\NormalizedCrossCorrelation 폴더에 있는 RGB 테스트 이미지 "PCB.tif"에 맞춰 구성되어 있습니다. 이 이미지의 크기는 1024x712 픽셀입니다. 그림에서 388 테스트 이미지가 표시됩니다.

테스트 이미지 "PCB.tif"

그림 388. 테스트 이미지 “PCB.tif”


PCB 기판의 왼쪽 하단에 있는 여섯 개의 작은 구멍이 이 예제에서 식별해야 할 대상입니다. 대상의 크기는 여기에서 12x12 픽셀입니다. 상자 안의 설계에서 NCC (그림 387 참조) 내에서는 이러한 객체를 위치 파악하기 위해식 55에 따른 알고리즘이 구현되어 있습니다. 해당 방정식 부분에 대한 자세한 정보는 링크와 HierarchicalbBoxes 옆의 주석 상자를 참조하십시오. 그림 389에서는 HierarchicalBox NCC의 내용을 확인할 수 있습니다.

HierarchicalBox NCC의 내용

그림 389. HierarchicalBox NCC의 내용


다음에 설명된 대로 이 디자인 예제를 원하는 이미지와 객체에 맞게 조정할 수 있습니다. RGB 이미지 대신 그레이스케일 이미지를 사용하려면 operator BaseRgbCamera 를 operator BaseGrayCamera 로 교체하고, operator SelectComponent를 삭제합니다.

  1. 연산자의 크기를 조정 FIRkernelNXM_12x12 의 크기를 이미지에서 식별하려는 객체의 크기에 맞게 조정하십시오.

  2. HierarchicalBox에서 “마우스 오른쪽 버튼 클릭” 시 NCC 의 “속성”에서 검색할 객체의 픽셀 수인 “K”를 설정할 수 있습니다. 객체 크기가 12x12일 때 K는 144입니다. “속성”에서 이진화 임계값도 조정할 수 있습니다. 이 임계값은 결과 이미지에서 객체의 위치를 “1”로 표시하는 데 사용됩니다.

  3. 커널의 열과 행 수를 다음 출력부의 객체 차원에 맞게 조정하십시오. CONST 연산자 One HierarchicalBox NCC.

  4. 식별할 객체의 픽셀 값 파일을 불러옵니다 (이 파일은 ) ~ FIRoperatorNxM IxR HierarchicalBox 내에서 NCC. “NCC.m” 프로그램을 사용하여 이 파일(“R.txt”)을 생성할 수 있습니다.

  5. 동일한 파일을 FIRoperatornxM Rmean_Mult_K 를 HierarchicalBox에 Sigma_R 계층적 상자 내 NCC.

  6. "Rpower2.txt" 파일(Matlab 프로그램 "NCC.m"으로 생성된)을 FIRoperatorNxM Sum_R_R HierarchicalBox 내에서 Sigma_R. 이 파일의 내용은 객체의 픽셀 값(2로 나눈 값)을 2의 제곱으로 승산한 값입니다. .

HierarchicalBox 내에서 부문 (그림 참조. 389) 최종 결과 식 ( )의 55 나눗셈 연산을 통해 계산됩니다 DIV. 상자 안의 내용을 볼 수 있습니다 부문 그림에서 390.

HierarchicalBox 구분의 내용

그림 390. HierarchicalBox 분할의 내용


나눗셈은 6비트의 소수 자릿수를 사용하여 수행되며, 즉 다음의 결과는 는 -1과 1 대신 -64와 64 사이입니다. 식별된 물체의 위치를 시각화하기 위해 결과 이미지는 이진화됩니다 다음과 같이 IS_GreaterEqual 연산자 임계값. 이 예제에서는 임계값을 50으로 설정했습니다. 이 값은 연산자에서 직접 변경하거나, 앞서 설명한 대로 상자를 “마우스 오른쪽 버튼으로 클릭”하여 변경할 수 있습니다. NCC. PC로 전송된 결과 이미지는 그림에 나와 있다. 391. PCB 기판의 왼쪽 하단에 있는 작은 구멍이 위치한 픽셀들(그림 참조) 388) 값 “1”을 얻고, 그 외 모든 픽셀은 “0”으로 처리합니다. 결과 이미지는 DMA를 통해 PC로 전송됩니다. 이 대신, 이 이미지를 후속 이미지 처리 단계에 입력으로 사용할 수도 있습니다.

객체 위치에 “1”이 표시된 결과 이미지 (확대 보기)

그림 391. 객체 위치에 “1”이 표시된 결과 이미지 (확대된 모습)