/* * 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); } } }