임의적 ROI(ERegion)
참조: 예: Inspecting Pads Using Regions / 코드 스니핏: ERegion
영역 또는 임의적 ROI
관심 영역(ROI)을 정의하고 사용하여 비전 도구로 처리되는 영역을 제한하고 처리 시간을 줄이고 최적화합니다.
Open eVision에서:
| □ | ROI ( 클래EROIxxx형의 관심 영역을 지정합니다. |
| □ | 영역( 클래스)은 ERegion ROI를 지정합니다. 영역을 사용하면 하나의 픽셀까지 이미지의 어느 부분이 처리에 사용되는지 정확하게 결정할 수 있습니다. |
현재 다음 메소드 Open eVision만 를 지원합니다:
|
라이브러리 |
방법 |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
EasyImage |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Easy3D |
|
| E3DObjectExtractor::Extract | |
| EZMapToPointCloudConverter::Convert | |
|
EasyObject |
|
|
EasyFind |
|
| EPatternFinder::Learn | |
| EasyOCR2 | EOCR2::Read |
| EOCR2::Detect | |
| EasyGauge | EPointGauge::Measure |
| ELineGauge::Measure | |
| ERectangleGauge::Measure | |
| ECircleGauge::Measure | |
| EWedgeGauge::Measure | |
| EasyMatch | EMatcher::LearnPattern |
| EMatcher::Match | |
| EasyQRCode | EQRCodeReader::SetSearchField |
| EQRCodeReader::Read |
향후 Open eVision 배포에서는 의 지원이 모든 운영자에게 점차 확대될 것입니다.
영역 만들기
Open eVision는 필요한 모양에 따라 영역을 만드는 여러 가지 방법을 제공합니다.
은 모든ERegion 클래스이며 가장 융통성이 있습니다. RLE (Run-Length Encoded) 표현을 사용하여 영역을 인코딩합니다.
| □ | 영역의 RLE 표현은 런(가로 1픽셀 높이 슬라이스)으로 구성됩니다. |
| □ | 런은 횡좌표와 길이로 시작하는 세로 좌표 형식으로 저장됩니다. |
원형 영역의 런-길이 인코딩
영역을 만들려면 다음 중 하나를 수행합니다:
| □ | 기하학 기반 영역 클래스 중 하나를 사용합니다. |
| □ | EasyFind, EasyMatch 또는 EasyObject와 같은 다른 도구의 결과를 사용합니다. |
| □ | 다른 영역을 결합하거나 수정합니다. |
| □ | 마스크 이미지를 사용합니다. |
| □ | 직접 실행 목록을 제공합니다. |
기하학 기반 영역
기하학 기반 영역은 단순한 기하학에 포함되는 특수화된 영역 클래스입니다. Open eVision는 현재 직사각형, 원, 타원 또는 다각형 기반의 클래스를 제공합니다.
이 클래스를 사용하여 기하학적 영역을 설정하고 변환, 회전 및 크기 조절을 사용하여 수정합니다. 변환 연산자는 소스 영역을 변경하지 않고 새로운 영역을 반환합니다.
| ● | ERectangleRegion |
| □ | 클래스의 윤곽선은 사각형입니다.ERectangleRegion |
| □ | 중심, 폭, 높이 및 각도를 사용하여 정의합니다. |
| □ | 또는 인스턴스에서 반환한 것과 같은 ERectangle다.ERectangle |
백그라운드에서 바코드를 분리하는 사각형 영역
| ● | ECircleRegion |
| □ | 클래스의 윤곽선은 원입니다.ECircleRegion |
| □ | 중심과 반지름 또는 3개의 비 정렬점을 사용하여 정의합니다. |
| □ | 또는 인스턴스에서 반환한 것과 같은 ECircle용합니다.ECircle |
X선 이미지의 유용한 부분을 포함하는 원형 영역
다른 도구의 결과 사용
Open eVision는 다음 도구에 대한 생성자를 제공합니다:
| □ | EasyFind EFoundPattern |
| □ | EasyMatch: EMatchPosition |
| □ | EasyGauge: ECircleECircle |
| □ | EasyObject: ECodedElement |
호환 가능하면 Open eVision는 기하학 기반 영역에 대한 특수 생성자도 제공합니다. 예를 들어, ECircleRegion은 ECircle을 사용하여 생성자를 제공합니다.
영역 결합
기존 영역을 결합하여 새 영역을 만들려면 다음 작업을 사용합니다:
| ● | 조합 |
| □ | 메서드ERegion::Union(const ERegion&, const ERegion&) |
2개의 원 조합
지역에 대한 형태학적 작업
다양한 형태 적 연산을 설명하는 데 사용되는 초기 임의 영역
영역을 자유롭게 그리기
| ● | 클래스ERegionFreeHandPainter수동으로 영역을 만들 수 있는 메서드를 제공합니다. |
| ● | C++ RegionFreeHand수 있는 샘플은 이 클래스를 사용하여 이미지에 영역을 그리는 방법을 보여줍니다. |
영역 사용
영역을 지원하는 도구는 다음 규칙 중 하나를 따르는 메소드를 제공합니다:
| □ | Method(const EImage& source, const ERegion& region) |
| □ | Method(const EImage& source, const ERegion& region, EImage& destination) |
소스, 지역 및 대상은 호환 가능해야 합니다. 이는 해당 영역이 소스에 적어도 부분적으로 적합해야 하며 해당 소스와 대상의 크기가 동일해야함을 의미합니다.
영역 준비하기
| ● | Open eVision는 영역을 이미지에 적용할 때 자동으로 영역을 준비하지만 이 준비에는 시간이 걸릴 수 있습니다. |
| ● | 메서드에 대한 첫 번째 호출이 다음 호출보다 오래 걸리지 않으려면 적절한 메서드를 사용하여 미리 영역을 준비할 수 있습니다.Prepare() |
| ● | 영역을 수동으로 준비하려면 이미지에 내부 RLE 설명을 적용합니다. |
영역 그리기
클래스ERegion시하는 여러 가지 메서드를 제공합니다:
| ● | ERegion::Draw() 반투명 방식으로 영역을 그립니다. |
| ● | ERegion::DrawContour()을 그립니다. |
| ● | ERegion::ToImage()마스크로 렌더링합니다. |
| □ | 전경색과 배경색을 구성할 수 있습니다. |
| □ | 너비와 높이로 이미지를 초기화했다면, Open eVision는 그 범위 내에서 영역을 렌더링합니다. |
| □ | 그렇지 않으면, Open eVision는 전체 영역을 포함하도록 이미지의 크기를 조정합니다. |
| □ | 를 사용ToImage()하여 이를 지원하Open eVisionToImage()ToImage() 함수의 마스크를 만듭니다. |
ERegion 및 EROI
| ● | 이전 EROIEROI Open eVisionEROI 새로운 영역과 호환됩니다. |
| ● | 일부 도구는 대신 인 소스 및/또는 대상이 있는 영역을 사용할 수 있도록 다음 규칙 중 하나를 따릅니다:ERoiERoi |
| □ | Method(const ERoi& source, const ERegion& region) |
| □ | Method(const ERoi& source, const ERegion& region, ERoi& destination) |
이 경우 영역에 사용 된 좌표는 전체 이미지 공간 대신 축소된 ROI 공간에 상대적입니다.
ERegion 및 3D