연산자 라이브러리: 필터
FIRkernelNxM 연산자는 각 픽셀 주위에 인접 픽셀을 포함하는 직사각형 커널 윈도우를 생성합니다. 커널의 크기는 출력 링크를 편집하여 정의할 수 있습니다. N은 커널의 행 수를 , M은 커널의 열 수를 나타냅니다.
![]() |
FIR 필터 없음 |
|---|---|
|
이름과는 달리, 이 연산자는 FIR 필터와는 아무런 관련이 없습니다. 이 연산자는 필터 입력 데이터를 생성하는 데 사용될 수 있습니다. |
커널을 생성하는 다른 연산자에는 다음이 있습니다. 연산자 LineNeighboursNx1 및 PixelNeighbours1xM입니다.
커널의 중심 요소는 항상 해당 위치의 원래 입력 픽셀을 나타냅니다. 픽셀 인덱스 x와 y, 커널 인덱스 m과 n을 갖는 출력 이미지 O는 다음과 같은 방식으로 입력으로부터 도출됩니다:
(각각
및
이미지 가장자리에서는 인접 픽셀이 정의되지 않습니다. 이 연산자는 EdgeHandling 매개변수를 사용하여 필요한 가장자리 처리 알고리즘을 정의할 수 있게 해줍니다.
크기가 짝수인 커널의 경우, 중앙 픽셀이 존재하지 않습니다. 이 경우 중앙 픽셀은 왼쪽 상단 모서리로 이동하게 되는데, 예를 들어 크기가 4x4인 커널의 경우, 다음 표에서 볼 수 있듯이 (1,1) 위치가 중앙 픽셀로 정의됩니다.
| 0,0 | 0,1 | 0,2 | 0,3 |
| 1,0 | 1,1 | 1,2 | 1,3 |
| 2,0 | 2,1 | 2,2 | 2,3 |
| 3,0 | 3,1 | 3,2 | 3,3 |
커널은 행과 열의 개수로 표현됩니다. VisualApplets 에서, N은 행의 개수를, M은 열의 개수를 나타냅니다. 종종 커널 요소는 좌표 대신 인덱스로 참조됩니다. 이 경우, 다음 표에 표시된 것처럼 행 단위로 순서가 정해집니다.
| 0 | 1 | 2 | 3 |
| 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 |
다음 예시는 3개의 커널 행과 3개의 커널 열에 대한 결합 결과를 보여줍니다. 그림에 표시된 연산자의 3x3 행렬은 각 커널의 내용을 정의하는 상대적 주소 지정 정보를 제공합니다. 출력의 각 3x3 클러스터는 픽셀별 서로 다른 커널 값을 보여줍니다.
픽셀별 커널 구성 대신, 이 예제에서는 결과로 얻어지는 서브커널을 보여줍니다. 인덱스 0에 있는 첫 번째 커널과 인덱스 8에 있는 마지막 커널입니다.
다음 예시는 커널 행 2개와 커널 열 2개를 조합했을 때의 결과 구성을 보여줍니다. 상대 주소가 오직 오른쪽이나 아래에 있는 인접 영역만을 참조하므로, 왼쪽이나 위쪽에 있는 콘텐츠에 대해서는 가장자리 처리를 수행할 필요가 없습니다.
홀수와 짝수 커널 크기를 사용한 마지막 두 예제를 비교해 보면, edgeMirroring 모드에서 edgeHandling 기능의 뚜렷한 동작을 확인할 수 있습니다. 짝수 및 홀수 커널 크기에 대한 edgeMirroring은 상단 및 왼쪽 경계에서는 동일하게 처리되지만, 하단 및 오른쪽 경계에서는 약간 다른 결과를 나타냅니다. 출력 이미지 크기가 크기 때문에, 첫 번째(오른쪽 상단) 및 마지막(오른쪽 하단) 입력 픽셀에 대한 구성 결과와 커널당 산출된 값만 제시합니다:
홀수 커널 크기에 대한 에지 미러링은 데이터가 누락된 영역을, 데이터가 있는 등거리 영역의 데이터로 채웁니다. 경계는 보존되며 복제되지 않습니다. 이 같은 원리는 짝수 커널 크기의 경우 영역을 위쪽이나 왼쪽으로 채울 때에도 적용됩니다. 이와는 대조적으로, 영역을 아래쪽이나 오른쪽으로 채울 때는 미러링 과정에서 경계 영역이 복제됩니다. 다시 말해, 이는 짝수 커널 크기의 경우에만 발생합니다.
![]() |
균일한 커널 크기를 위한 EdgeMirroring |
|---|---|
|
커널 크기가 짝수인 경우, 영역을 아래쪽이나 오른쪽 끝까지 채우면 미러링 시 테두리가 복제됩니다. |
기술적으로, 이 연산자는 커널에 필요한 픽셀을 병렬로 출력할 수 있을 때까지 대기하며 버퍼링합니다. 따라서, 입력 측에서 해당 픽셀에 필요한 모든 인접 픽셀이 처리된 후에야 픽셀을 출력할 수 있으므로, 이 연산자는 지연을 유발합니다. 라인 지연은 다음과 같습니다:
오퍼레이터 제한 사항
-
ImageWidth < 2*Parallelism is not allowed.
-
빈 이미지, 즉 픽셀이 전혀 없는 이미지는 허용되지 않습니다.
-
빈 줄이나 줄 길이가 제각각인 경우는 허용되지 않습니다.
| EdgeHandling | |
|---|---|
| Type | static parameter |
| Default | EdgeMirrored |
| Range | {EdgeMirrored, EdgeConstant} |
|
이미지의 가장자리에서는 커널을 생성할 인접 요소가 존재하지 않습니다. 이 경우, 연산자는 두 가지 가장자리 처리 모드에서 사용할 수 있습니다: EdgeMirrored 모드에서는 이미지 가장자리에 미러링된 픽셀이 사용됩니다. EdgeConstant 모드에서는 가장자리에 누락된 커널 요소가 상수 값으로 채워집니다. 이 값은 Constant 매개변수를 사용하여 정의할 수 있습니다. |
|
| 상수 | |
|---|---|
| Type | static parameter |
| Default | 0 |
| Range | 입력 링크 I의 범위 |
|
EdgeHandling 매개변수가 EdgeConstant로 설정된 경우, 이 매개변수는 이미지 경계 밖의 픽셀에 대한 기본값을 정의합니다. 색상 형식의 경우, 이 값은 모든 색상 구성 요소의 이진 표현을 결합한 부호 없는 정수입니다. |
|
다음 예제에서는 연산자 FIRkernelNxM의 사용법을 보여줍니다:
-
동기화 - 교착 상태 방지.
-
국소 적응 임계값 처리를 위한 이진화 예시. 8×8 픽셀 크기의 커널이 사용됩니다.
-
예시 - 최인접 이웃 베이이어 디모자이징
-
예시 - 이 예시는 3x3 필터를 사용하여 Bayer RAW 패턴의 디모자이킹을 수행하는 방법을 보여줍니다.
-
예시 - 이 예시는 5x5 필터를 사용하여 Bayer RAW 패턴의 디모자이킹을 수행하는 방법을 보여줍니다.
-
'Bayer 3x3 Demosacing with White Balancing'
Examples - 이 예시는 3x3 필터를 사용하여 Bayer RAW 패턴의 디모자이닝(demosaicing)을 수행하는 방법을 보여줍니다. 또한 컬러 보정을 위한 화이트 밸런싱이 추가되었습니다.
-
'Bayer 5x5 Demosacing with White Balancing'
Examples - 이 예시는 5x5 필터를 사용하여 Bayer RAW 패턴의 디모자이닝(demosaicing)을 수행하는 방법을 보여줍니다. 또한 컬러 보정을 위한 화이트 밸런싱이 추가되었습니다.
-
예시 - 에지 감지 라플라스-바이어 디모자이징 필터
-
예시 - 라로슈-바이엘 디모자이징 필터
-
예시 - 자원 최적화 라로슈-바이어 디모자이징 필터
-
'컬러 패턴 Red/BlueFollowedByGreen GreenFollowedByBlue/Red를 사용하는 양선형 라인 스캔 카메라용 Bayer 디모자이킹'
예시 - 이 예시는 컬러 패턴이 Red/BlueFollowedByGreen_GreenFollowedByBlue/Red인 양선형 라인 스캔 카메의 Bayer RAW 패턴 디모자이킹을 보여줍니다.
-
'컬러 패턴 RedFollowedByBlue GreenFollowedByGreen을 사용하는 양선형 라인 스캔 카메라용 Bayer 디모자이킹'
예시 - 이 예시는 컬러 패턴이 Red/BlueFollowedByBlue/Red_GreenFollowedByGreen인 양선형 라인 스캔 카메라의 Bayer RAW 패턴 디모자이킹을 보여줍니다.
-
'8비트 바이컬러 Bayer 패턴을 사용하는 라인 스캔 카메라의 Bayer 디모자이킹'
예시 - 이 예시는 BiColorRGBG, BiColorGRGB, BiColorBGRG, BiColorGBGR 등의 바이컬러 Bayer 패턴을 가진 CXP-12 라인 스캔 카메라(예: racer 2 L 카메라)의 8비트 Bayer RAW 패턴 디모자이킹을 보여줍니다. 또한, 이 예시에는 라인 스캔 트리거 모듈과 화이트 밸런싱 모듈이 포함되어 있습니다.
-
'10비트 바이컬러 Bayer 패턴을 사용하는 라인 스캔 카메라의 Bayer 디모자이킹'
예시 - 이 예시는 BiColorRGBG, BiColorGRGB, BiColorBGRG, BiColorGBGR 등의 바이컬러 Bayer 패턴을 가진 CXP-12 라인 스캔 카메라(예: racer 2 L 카메라)의 10비트 Bayer RAW 패턴 디모자이킹을 보여줍니다. 또한, 이 예시에는 라인 스캔 트리거 모듈과 화이트 밸런싱 모듈이 포함되어 있습니다.
-
'12비트 바이컬러 Bayer 패턴을 사용하는 라인 스캔 카메라의 Bayer 디모자이킹'
예시 - 이 예시는 BiColorRGBG, BiColorGRGB, BiColorBGRG, BiColorGBGR 등의 바이컬러 Bayer 패턴을 가진 CXP-12 라인 스캔 카메라(예: racer 2 L 카메라)의 10비트 Bayer RAW 패턴 디모자이킹을 보여줍니다. 또한, 이 예시에는 라인 스캔 트리거 모듈과 화이트 밸런싱 모듈이 포함되어 있습니다.
-
Examples - imaFlex 플랫폼의 보조 프로세서(coprocessor) 기능을 보여줍니다. 예시로 Median Filter가 계산됩니다.
-
'Co-Processor Large Filter Calculation'
Examples - imaFlex 플랫폼의 보조 프로세서 기능을 보여줍니다. 예시로 대형 필터 커널이 계산됩니다.
-
예시 - 이진화된 이미지를 원본 이미지와 비교합니다. 두 이미지가 서로 다를 경우 가장자리가 탐지됩니다.
-
예시 - Kirsch filter는 무방향성 에지(edge) 검출에 적합한 에지 검출 필터입니다.
-
예시 - x 방향에만 적용되는 소벨 필터.
-
예시 - 4방향 모두에 적용된 소벨 필터.
-
예제 - 이진 이미지에 적용된 형태학적 근접 연산의 구현 예를 보여줍니다.
-
예제 - 이진 이미지에 형태학적 오픈 연산을 적용한 구현 예를 보여줍니다.
-
예시 - 간단한 3x3 박스 필터.
-
예시 - 5x5 커널을 사용하는 가우스 필터.
-
예시 - 이 애플릿은 이미지에 5x5 중앙값 필터를 적용합니다.
-
예제 - 필터의 구현 방법을 설명합니다.
-
예시 - 두 개의 필터를 병렬로 사용하는 예시.
-
예제 - 필터에서 부분 커널을 추출하여 원본 이미지 데이터를 얻는 방법을 보여줍니다. 이 예제는 간단한 국소 적응형 이진화 처리를 수행합니다.
-
'Filter for Line Scan Cameras'
예제 - 라인 스캔 카메라용 필터를 구현하는 방법을 설명합니다.
-
예시 - 선명도를 높이기 위한 고부스트 라플라스 필터
-
예시 - 3x3 라플라스 필터.
-
예시 - 강도가 높은 스팟 계수를 사용하여 컨볼루션 연산을 수행합니다. 임계값을 초과하는 결과의 경우, 해당 픽셀은 빨간색으로 표시됩니다.
-
'루프를 이용한 초점 심도(Depth From Focus)'
예제 - 루프를 이용한 초점 심도(Depth From Focus)
-
예시-
-
예시 - 이 예시에서는 데드 픽셀을 자동으로 감지하고 교체하는 과정을 보여줍니다.

![[참고]](../common/images/admon/note.png)
![[팁]](../common/images/admon/tip.png)




이전

