/*
* Copyright (c) 2025 LG Electronics Inc.
* SPDX-License-Identifier: LicenseRef-LGE-Proprietary
*/
using Aurora.Api.DataType;
using Cognex.VisionPro;
using System.Collections.Generic;
using System.Windows;
using VisionCommon;
namespace CogCommon {
///
/// MIL or Cognex 상호참조 해결을 위한 클래스
///
public class IpEnvironment : IIpEnvironment {
///
/// 이미지 픽셀 클리어
///
/// 이미지
public void ClearImage(object image) {
CogEnvironment.ClearImage((ICogImage)image);
}
///
/// 이미지 리소스 회수
///
/// 이미지
/// 성공 유무
public int FreeImage(object image) {
return CogEnvironment.FreeImage((ICogImage)image);
}
///
/// 이미지 저장
///
/// 파일 경로
/// 이미지
/// 성공 유무
public int SaveImage(string filePath, object image) {
return CogEnvironment.SaveImage(filePath, (ICogImage)image);
}
///
/// 이미지 로드
///
/// 파일 경로
/// 이미지
public object LoadImage(string filePath) {
return CogEnvironment.LoadImage(filePath);
}
///
/// 이미지 로드
///
/// 파일 경로
/// 카메라 컨피그
/// 이미지
public object LoadImage(string filePath, CamConfig camConfig) {
return CogEnvironment.LoadImage(filePath);
}
///
/// 이미지 자르기
///
/// 이미지
/// 자를 영역
/// 자른 이미지
public object CropImage(object image, ROI cropRoi) {
return CogEnvironment.CropImage((ICogImage)image, cropRoi);
}
///
/// 이미지 사이즈 가져오기
///
/// 이미지
/// 이미지 사이즈
public ImageSize GetImageSize(object image) {
return CogEnvironment.GetImageSize((ICogImage)image);
}
///
/// 이미지 중심좌표 가져오기
///
/// 이미지
/// 중심좌표
public ImagePoint GetImageCenter(object image) {
return CogEnvironment.GetImageCenter((ICogImage)image);
}
///
/// 이미지 사이즈 동일 여부 체크
///
/// 이미지1
/// 이미지2
/// 이미지 사이즈 동일 여부
public bool ImageSizeEquals(ImageSize imageSize1, ImageSize imageSize2) {
return CogEnvironment.ImageSizeEquals(imageSize1, imageSize2);
}
///
/// 이미지의 ROI 내에서 Pixel Sharpness 값 가져오기
///
/// 이미지
/// Rect
/// Pixel Sharpness 값
public int GetSharpnessWithCropRoi(object image, Rect cropRoi) {
return CogEnvironment.GetSharpnessWithCropRoi((ICogImage)image, cropRoi);
}
///
/// 이미지의 ROI 내에서 Pixel Sharpness 값 가져오기
///
/// 이미지
/// ROI
/// Pixel Sharpness 값
public int GetSharpnessWithCropRoi(object image, ROI cropRoi) {
return CogEnvironment.GetSharpnessWithCropRoi((ICogImage)image, cropRoi);
}
///
/// Overlay 이미지 저장
///
/// 파일 경로
/// 모든 FOV 정보
/// 디스플레이 타입
/// 성공 유무
public int SaveScreenShot(string filePath, List fovInfos, eDisplayType displayType, object image = null) {
return CogEnvironment.SaveScreenShot(filePath, fovInfos, displayType, image);
}
///
/// 이미지 반전 유무 확인
///
/// 카메라 컨피그
/// 이미지 반전 유무
public bool IsFlipEnabled(CamConfig camConfig) {
return CogEnvironment.Instance.IsFlipEnabled(camConfig);
}
///
/// 이미지 회전 유무 확인
///
/// 카메라 컨피그
/// 이미지 회전 유무
public bool IsRotationEnabled(CamConfig camConfig) {
return CogEnvironment.Instance.IsRotationEnabled(camConfig);
}
///
/// 이미지 세로 사이즈가 가로 사이즈보다 큰지 확인
///
/// 카메라 컨피그
/// 이미지 세로 사이즈가 가로 사이즈보다 크면 True
public bool IsHeightLongerThanWidth(CamConfig camConfig) {
return CogEnvironment.Instance.IsHeightLongerThanWidth(camConfig);
}
}
}