Operator Library: Filter
연산자 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의 마지막 커널)을 보여줍니다.
다음 예는 두 개의 커널 행과 두 개의 커널 열에 대한 결과 구성을 보여줍니다. 상대 주소가 오른쪽에 있거나 아래에 있는 이웃만 참조하므로, 왼쪽이나 상단의 콘텐츠에 대해 가장자리 처리를 수행할 필요가 없습니다.
홀수 및 짝수 커널 크기를 가진 앞의 두 예를 비교해보면 edgeMirroring 모드에서 edgeHandling 기능의 주목할 만한 동작을 확인할 수 있습니다. 짝수 및 홀수 커널 크기 모두 상단 및 왼쪽 테두리에서 edgeMirroring이 동일하게 처리되는 반면, 하단 및 오른쪽에서는 약간 다른 결과가 생성됩니다. 출력 이미지 크기가 크기 때문에 첫 번째(우상단) 및 마지막(우하단) 입력 픽셀과 커널당 결과 값에 대한 결과 구성만 표시됩니다.
홀수 커널 크기에 대한 EdgeMirroring은 데이터가 있는 등거리 영역의 누락된 데이터로 영역을 채웁니다. 테두리는 복제되지 않고 보존됩니다. 짝수 커널 크기의 경우 상단 또는 왼쪽 영역을 채울 때도 동일한 원리가 적용됩니다. 이와 대조적으로 하단 또는 오른쪽 영역을 채우는 경우에는 미러링 중에 테두리가 복제됩니다. 이 역시 짝수 커널 크기에서만 발생합니다.
![]() |
짝수 커널 크기에 대한 EdgeMirroring |
|---|---|
|
짝수 커널 크기의 경우 하단 또는 오른쪽 영역을 채울 때 미러링 중에 테두리가 복제됩니다. |
기술적으로 이 연산자는 커널의 필수 픽셀을 병렬로 출력할 수 있을 때까지 대기하고 버퍼링합니다. 따라서 입력에서 필요한 모든 해당 인접 픽셀이 처리된 후에만 픽셀을 출력할 수 있으므로 연산자로 인해 지연이 발생합니다. 라인 지연은 다음과 같습니다.
Operator 제한 사항
-
ImageWidth < 2*Parallelism is not allowed.
-
빈 이미지, 즉 픽셀이 없는 이미지는 허용되지 않습니다.
-
빈 라인이나 길이가 다른 라인은 허용되지 않습니다.
| EdgeHandling | |
|---|---|
| Type | static parameter |
| Default | EdgeMirrored |
| Range | {EdgeMirrored, EdgeConstant} |
|
이미지 가장자리에는 커널을 생성할 이웃이 존재하지 않습니다. 이 경우 연산자는 두 가지 가장자리 처리 모드로 사용할 수 있습니다. EdgeMirrored 모드에서는 이미지 가장자리에 미러링된 픽셀이 사용됩니다. EdgeConstant 모드에서는 가장자리의 누락된 커널 요소가 상수로 채워집니다. 이 값은 Constant 파라미터를 사용하여 정의할 수 있습니다. |
|
| Constant | |
|---|---|
| Type | static parameter |
| Default | 0 |
| Range | range of input link I |
|
EdgeHandling 파라미터가 EdgeConstant로 설정된 경우, 이 파라미터는 이미지 경계 외부의 픽셀에 대한 기본값을 정의합니다. 컬러 포맷의 경우, 이 값은 모든 컬러 컴포넌트의 바이너리 표현을 결합한 부호 없는 정수입니다. |
|
FIRkernelNxM 오퍼레이터의 사용법은 다음 예시와 같습니다:
-
동기화 - 데드락 방지.
-
로컬 적응형 임계값 처리를 위한 이진화 예시입니다. 8x8 픽셀의 커널 크기가 사용됩니다.
-
'Nearest Neighbor Demosaicing'
예시 - Nearest Neighbor Bayer Demosaicing
-
예시 - 이 예시는 3x3 필터를 사용하여 Bayer RAW 패턴의 디모자이징을 수행하는 방법을 보여줍니다.
-
Examples - 이 예제는 5x5 필터를 사용한 Bayer RAW 패턴의 디모자이징(demosaicing)을 보여줍니다.
-
'Bayer 3x3 Demosacing with White Balancing'
예시 - 이 예시는 3x3 필터를 사용하여 Bayer RAW 패턴의 디모자이징을 수행하는 방법을 보여줍니다. 또한 색상 보정을 위한 화이트 밸런싱이 추가됩니다.
-
'Bayer 5x5 Demosacing with White Balancing'
Examples - 이 예제는 5x5 필터를 사용한 Bayer RAW 패턴의 디모자이징을 보여줍니다. 또한 색상 보정을 위한 화이트 밸런싱이 추가되었습니다.
-
'Edge Sensitive Bayer Demosaicing Algorithm'
예시 - 에지 감지 Laplace Bayer 디모자이징 필터
-
'Bayer Demosaicing Algorithm According to Laroche'
예시 - Laroche 베이어 디모자이킹 필터
-
'Modified Laroche Bayer Demosaicing Algorithm '
예시 - 리소스가 최적화된 Laroche 베이어 디모자이킹 필터
-
Examples - 이 예제는 컬러 패턴이 Red/BlueFollowedByGreen_GreenFollowedByBlue/Red인 쌍선형 라인 스캔 카메의 Bayer RAW 패턴 디모자이징을 보여줍니다.
-
Examples - 이 예제는 컬러 패턴이 Red/BlueFollowedByBlue/Red_GreenFollowedByGreen인 양선형 라인 스캔 카메라의 Bayer RAW 패턴 디모자이킹을 보여줍니다.
-
'Bayer Demosaicing a Line Scan Camera with 8 Bit BiColor Bayer Pattern'
Examples - 이 예제는 BiColor Bayer 패턴(BiColorRGBG, BiColorGRGB, BiColorBGRG 및 BiColorGBGR, 예를 들어 racer 2 L 카메라용)이 있는 CXP-12 라인 스캔 카메라의 8비트 Bayer RAW 패턴 디모자이킹을 보여줍니다. 또한 이 예제에는 라인 스캔 트리거 모듈과 화이트 밸런싱 모듈이 포함되어 있습니다.
-
'Bayer Demosaicing a Line Scan Camera with 10 Bit BiColor Bayer Pattern'
Examples - 이 예제는 BiColor Bayer 패턴(BiColorRGBG, BiColorGRGB, BiColorBGRG 및 BiColorGBGR, 예를 들어 racer 2 L 카메라용)이 있는 CXP-12 라인 스캔 카메라의 10비트 Bayer RAW 패턴 디모자이킹을 보여줍니다. 또한 이 예제에는 라인 스캔 트리거 모듈과 화이트 밸런싱 모듈이 포함되어 있습니다.
-
'Bayer Demosaicing a Line Scan Camera with 12 Bit BiColor Bayer Pattern'
Examples - 이 예제는 BiColor Bayer 패턴(BiColorRGBG, BiColorGRGB, BiColorBGRG 및 BiColorGBGR, 예를 들어 racer 2 L 카메라용)이 있는 CXP-12 라인 스캔 카메라의 10비트 Bayer RAW 패턴 디모자이킹을 보여줍니다. 또한 이 예제에는 라인 스캔 트리거 모듈과 화이트 밸런싱 모듈이 포함되어 있습니다.
-
예제 - imaFlex 플랫폼의 보조 프로세서 기능이 표시됩니다. 예제로 Median Filter가 계산됩니다.
-
'Co-Processor Large Filter Calculation'
예시 - imaFlex 플랫폼의 보조 프로세서 기능을 보여줍니다. 예시로 대형 필터 커널이 계산됩니다.
-
예시 - 이진 침식(eroded) 이미지를 원본과 비교합니다. 두 이미지에 차이가 있는 경우 에지가 검출됩니다.
-
예시 - Kirsch 필터는 무방향성 에지에 적합한 우수한 에지 검출 필터입니다.
-
예시 - X 방향으로만 적용되는 Sobel 필터입니다.
-
예시 - 4개의 모든 방향에 적용되는 Sobel 필터입니다.
-
Examples - 바이너리 이미지에 적용된 형태학적 닫기(close) 구현을 보여줍니다.
-
Examples - 바이너리 이미지에 적용된 형태학적 열기(open) 구현을 보여줍니다.
-
예시 - 간단한 3x3 박스 필터입니다.
-
예시 - 5x5 커널을 사용하는 Gauss 필터입니다.
-
예시 - 앱렛이 이미지에 5x5 Median Filter를 적용합니다.
-
예제 - 필터 구현에 대해 설명합니다.
-
예제 - 두 개의 필터를 병렬로 사용하는 예제입니다.
-
예제 - 필터에서 하위 커널을 추출하여 원본 이미지 데이터를 얻는 방법을 보여줍니다. 이 예제는 간단한 로컬 적응형 이진화를 수행합니다.
-
'Filter for Line Scan Cameras'
예제 - 라인 스캔 카메라용 필터 구현 방법을 설명합니다.
-
'High Boost Sharpening Filter'
예제 - 선명도 향상을 위한 High Boost Laplace 필터
-
예제 - 3x3 Laplace 필터.
-
예제 - 고강도 스폿 계수를 사용하여 컨볼루션을 수행합니다. 임계값을 초과하는 결과의 경우, 해당 픽셀이 빨간색으로 표시됩니다.
-
'Depth From Focus Using Loops'
Examples - Depth From Focus using Loops
-
'Normalized Cross Correlation'
예제 -
-
예제 - 데드 픽셀 자동 감지 및 교체 방법을 보여주는 예제입니다.

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




이전

