Common

1 개요

이미지 프로세싱 작업을 수행하는 데 필요한 기본적인 설정과 옵션을 설명합니다.

2 기본 개념

2.1 Source, Operand, Destination

멤버함수 파라미터 설 명
SetOperationSource EOperationSource eOperationSource IN 피연산자를 (Scalar / 이미지) 로 설정합니다.

eOperationSource - Default : EOperationSource_Scalar

2.2 Image, ROI 및 Pivot

이미지 처리의 주요 개념인 이미지 자체, ROI(Region of Interest), 그리고 Pivot(기준점) 설정 방법을 다룹니다.

각 Parameter를 지정하지 않은 경우
Source Image를 제외한 각 Image, ROI 및 Pivot은 필수 Parameter가 아니기 때문에 설정하지 않은 경우 처리 방식을 설명합니다.

2.3 Intersection 계산 과정

Destination Pivot을 기준으로 Source Pivot과 Operand Pivot을 이동합니다.
Pivot이 이동한 만큼 Source와 Operand의 ROI도 이동합니다.
Pivot이 일치된 상태에서 ROI 간의 Intersection을 계산해 출력 영역을 구합니다.

Source 이미지 ROI 지정
Image Processing Common Source Image Processing Common Source
결과
Destination 이미지가 없는 경우
Blank Color (200,200,200)
Destination 이미지가 있는 경우
Blank Color (0,0,0)
Always Fill Blank Color 체크
Image Processing Common Source Image Processing Common Source

3 추가 옵션

Blank Color

Blank 영역을 설정한 값으로 채웁니다. Source Image의 채널 수 만큼 각각 설정할 수 있습니다.
Blank Color 값이 Source Image의 표현범위를 벗어나면 동작하지 않습니다.

멤버함수 파라미터 설 명
EnableFillBlankColorMode bool bFillBlankColor IN Fill Blank Color 모드를 설정합니다.

bFillBlankColor - Default : false

Batch Processing Setting

FLImaging®의 CFLImage 클래스는 Multi Page를 지원합니다.
각 페이지별로 이미지 버퍼를 관리하며, 배치 처리를 통해 한 번의 실행으로 다중 처리가 가능합니다.

멤버함수 파라미터 설 명
EnableBatchProcessing bool bBatchProcessing IN Batch Processing 실행 여부 설정

bBatchProcessing - Default : false

Image Figure

CFLImage 클래스는 이미지 버퍼 뿐만 아니라 이미지 처리에 필요한 데이터를 함께 관리하여 처리 및 저장이 가능합니다.

멤버함수 파라미터 설 명
EnableImageFigureTransformation bool bEnable IN 이미지 Figure를 처리 결과에 맞게 대응시킵니다.

bEnable - Default : false

Processing Unit Setting

FLImaging®은 모든 알고리즘에서 SIMD 및 Multi Thread를 지원하며, 부분적인 알고리즘에 대해 GPU 연산을 지원합니다. 더 자세한 설명은 Processing Unit를 참고하세요.

4 예제 코드

COperationAdd operationAdd;

CFLImage fliSource, fliOperand, fliDestination;
CFLFigure flfSourceROI, flfOperandROI, flfDestinationROI;
CFLPoint<double> flpSourcePivot, flpOperandPivot, flpDestinationPivot;

//////////////////////////////////////////////////////
// Source ,Operand 이미지 로드 ,ROI 설정, Pivot 설정
//////////////////////////////////////////////////////

// 이미지 설정
operationAdd.SetSourceImage(fliSource);
operationAdd.SetOperandImage(fliOperand);
operationAdd.SetDestinationImage(fliDestination);

// ROI 설정
operationAdd.SetSourceROI(flfSourceROI);
operationAdd.SetOperandROI(flfOperandROI);
operationAdd.SetDestinationROI(flfDestinationROI);

// Pivot 설정
operationAdd.SetSourcePivot(flpSourcePivot);
operationAdd.SetOperandPivot(flpOperandPivot);
operationAdd.SetDestinationPivot(flpDestinationPivot);

// Operand를 사용하기 위한 OperationSource 설정
operationAdd.SetOperationSource(EOperationSource_Image);

// FillBlankColor 모드 설정
operationAdd.EnableFillBlankColorMode(true);

// Batch Processing 설정
operationAdd.EnableBatchProcessing(true);

// FigureTransformation 설정
operationAdd.EnableImageFigureTransformation(true);

////////////////////////////////////////////////////////////////
// CPU, Multi Thread를 사용하는 경우
CProcessingUnitCPUMulti puMulti;
puMulti.SetInstruction(CProcessingUnitCPU::EInstruction_Optimal);
operationAdd.SetProcessingUnit(puMulti);

// CPU, Single Thread를 사용하는 경우
CProcessingUnitCPU pu;
pu.SetInstruction(CProcessingUnitCPU::EInstruction_Optimal);
operationAdd.SetProcessingUnit(pu);

// GPU, Cuda를 사용하는 경우 단, 지원하는 알고리즘에 한함
CProcessingUnitCuda puCuda;
operationAdd.SetProcessingUnit(puCuda);
////////////////////////////////////////////////////////////////

operationAdd.Execute();

5 GUI 사용 실습

이번 실습에서는 Add 기능을 활용하며, Fixed View Preset은 2D 개발에 적합한 Expert Development Mode를 사용합니다.

5.1 Add Property 생성하기

  1. Image Processing -> Image Operation -> Add로 이동하거나. Ctrl + F를 눌러 검색창에 Add를 입력하여 빠르게 찾을 수 있습니다.

    • Alias(별칭) 기능이 지원되므로 정확한 명칭이 아니더라도 비슷한 성격의 알고리즘을 쉽게 찾을 수 있습니다.
      예 : Plus를 검색하면 Add 관련 알고리즘이 표시됩니다.

      Searching Add
      Fig. Searching Add
      Searching Plus
      Fig. Searching Plus
  2. 검색된 Add를 더블클릭하여 Property 창을 생성합니다.
    Add 기능의 설명은 Operation Add를 참고하세요.

    Property Add
    Fig. Property Add

5.2 이미지 설정

  1. Source Image로 사용할 이미지를 Image View에 불러온 뒤, 해당 View를 Source View로 설정합니다.

  2. Flower.flif 이미지를 1번 View에 불러오고, 이를 Source View로 지정합니다.

    Source Image
    Fig. Source Image
    Source View
    Fig. Source View
  3. 연산 결과를 출력할 Destination View를 2번 View로 설정합니다.

    • Destination ViewNone으로 설정된 경우, 실행 시 결과 이미지가 Source View에 출력됩니다.
    Destination View
    Fig. Destination View
  4. 파라미터는 다음과 같이 설정하였습니다.

    • Operation Source : Scalar
    • Overflow Method : Clamping
    • Scalar Value : (100, 0, 0)
    Parameters
    Fig. Parameters
  5. Execute 버튼 또는 단축키(F5) 를 눌러 실행합니다.

    • 결과 이미지는 Destination View에 표시됩니다.
    Destination Image
    Fig. Destination Image

5.3 ROI 설정

  1. ROI 설정을 위해 Source View 우클릭 후, Figure -> Create Figure에서 원하는 Figure를 선택할 수 있습니다.
    ROI 기능의 설명은 ROI & Figure를 참고하세요.

    Create Figure
    Fig. Create Figure
  2. Create Figure에서 Rect 선택 후, 이미지에 ROI를 지정합니다.

    • 이미지에서 ROI를 지정하고자 하는 시작 지점에서 좌클릭 후, 드래그하여 끝 지점에서 다시 클릭합니다.
    Draw Figure
    Fig. Draw Figure
  3. Figure 우클릭 후, Assign Figure 기능을 이용하여 Source View ROI로 지정해줍니다.

    • Assign Figure를 통해, Property 창에서 Source View ROI가 지정된 것을 확인할 수 있습니다.
    Assign Figure
    Fig. Assign Figure
    Source Viw ROI
    Fig. Source View ROI
    • 또 다른 방법으로, Figure 클릭 후 복사 (Ctrl + C) 및 Property 창의 Source View ROI 입력 부분 클릭 후 붙여넣기 (Ctrl + V)를 통해서도 Source View ROI 지정이 가능합니다.
  4. Scalar Value를 기존에 설정했던 (100, 0, 0)에서 (100, 100, 0)으로 변경하여 Execute 하면 지정한 ROI 부분만 연산이 된 것을 확인할 수 있습니다.

    Scalar Value
    Fig. Scalar Value
    Destination Image
    Fig. Destination Image

5.4 Blank Color

  1. Destination View 이미지 Clear 후, Blank Color 파라미터 값을 설정하여 Execute 하면 연산 처리가 진행되지 않는 부분이 설정한 Blank Color 값으로 처리되는 것을 확인할 수 있습니다.

    • Blank Color : (100, 100, 100)
    Blank Color
    Fig. Blank Color
    Clear File
    Fig. Clear File
    Destination Image
    Fig. Destination Image

5.5 Image Figure Transformation

  1. Figure 우클릭 후, PushBack Figure to Image를 클릭하여 Figure를 Image에 pushback 할 수 있습니다.
PushBack Figure to Image PushBack Figure to Image
Fig. PushBack Figure to Image
  1. Property 창에서 Image Figure의 Transformation을 체크 후 Execute 하면, Destination 이미지에 Figure가 Transform되는 것을 확인할 수 있습니다.
Check Image Figure Transformation
Fig. Check Image Figure Transformation