158 lines
5.9 KiB
C#
158 lines
5.9 KiB
C#
/*
|
|
* 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 {
|
|
/// <summary>
|
|
/// MIL or Cognex 상호참조 해결을 위한 클래스
|
|
/// </summary>
|
|
public class IpEnvironment : IIpEnvironment {
|
|
/// <summary>
|
|
/// 이미지 픽셀 클리어
|
|
/// </summary>
|
|
/// <param name="image">이미지</param>
|
|
public void ClearImage(object image) {
|
|
CogEnvironment.ClearImage((ICogImage)image);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 이미지 리소스 회수
|
|
/// </summary>
|
|
/// <param name="image">이미지</param>
|
|
/// <returns>성공 유무</returns>
|
|
public int FreeImage(object image) {
|
|
return CogEnvironment.FreeImage((ICogImage)image);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 이미지 저장
|
|
/// </summary>
|
|
/// <param name="filePath">파일 경로</param>
|
|
/// <param name="image">이미지</param>
|
|
/// <returns>성공 유무</returns>
|
|
public int SaveImage(string filePath, object image) {
|
|
return CogEnvironment.SaveImage(filePath, (ICogImage)image);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 이미지 로드
|
|
/// </summary>
|
|
/// <param name="filePath">파일 경로</param>
|
|
/// <returns>이미지</returns>
|
|
public object LoadImage(string filePath) {
|
|
return CogEnvironment.LoadImage(filePath);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 이미지 로드
|
|
/// </summary>
|
|
/// <param name="filePath">파일 경로</param>
|
|
/// <param name="camConfig">카메라 컨피그</param>
|
|
/// <returns>이미지</returns>
|
|
public object LoadImage(string filePath, CamConfig camConfig) {
|
|
return CogEnvironment.LoadImage(filePath);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 이미지 자르기
|
|
/// </summary>
|
|
/// <param name="image">이미지</param>
|
|
/// <param name="cropRoi">자를 영역</param>
|
|
/// <returns>자른 이미지</returns>
|
|
public object CropImage(object image, ROI cropRoi) {
|
|
return CogEnvironment.CropImage((ICogImage)image, cropRoi);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 이미지 사이즈 가져오기
|
|
/// </summary>
|
|
/// <param name="image">이미지</param>
|
|
/// <returns>이미지 사이즈</returns>
|
|
public ImageSize GetImageSize(object image) {
|
|
return CogEnvironment.GetImageSize((ICogImage)image);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 이미지 중심좌표 가져오기
|
|
/// </summary>
|
|
/// <param name="image">이미지</param>
|
|
/// <returns>중심좌표</returns>
|
|
public ImagePoint GetImageCenter(object image) {
|
|
return CogEnvironment.GetImageCenter((ICogImage)image);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 이미지 사이즈 동일 여부 체크
|
|
/// </summary>
|
|
/// <param name="imageSize1">이미지1</param>
|
|
/// <param name="imageSize2">이미지2</param>
|
|
/// <returns>이미지 사이즈 동일 여부</returns>
|
|
public bool ImageSizeEquals(ImageSize imageSize1, ImageSize imageSize2) {
|
|
return CogEnvironment.ImageSizeEquals(imageSize1, imageSize2);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 이미지의 ROI 내에서 Pixel Sharpness 값 가져오기
|
|
/// </summary>
|
|
/// <param name="image">이미지</param>
|
|
/// <param name="cropRoi">Rect</param>
|
|
/// <returns>Pixel Sharpness 값</returns>
|
|
public int GetSharpnessWithCropRoi(object image, Rect cropRoi) {
|
|
return CogEnvironment.GetSharpnessWithCropRoi((ICogImage)image, cropRoi);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 이미지의 ROI 내에서 Pixel Sharpness 값 가져오기
|
|
/// </summary>
|
|
/// <param name="image">이미지</param>
|
|
/// <param name="cropRoi">ROI</param>
|
|
/// <returns>Pixel Sharpness 값</returns>
|
|
public int GetSharpnessWithCropRoi(object image, ROI cropRoi) {
|
|
return CogEnvironment.GetSharpnessWithCropRoi((ICogImage)image, cropRoi);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Overlay 이미지 저장
|
|
/// </summary>
|
|
/// <param name="filePath">파일 경로</param>
|
|
/// <param name="fovInfos">모든 FOV 정보</param>
|
|
/// <param name="displayType">디스플레이 타입</param>
|
|
/// <returns>성공 유무</returns>
|
|
public int SaveScreenShot(string filePath, List<FovInfo> fovInfos, eDisplayType displayType, object image = null) {
|
|
return CogEnvironment.SaveScreenShot(filePath, fovInfos, displayType, image);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 이미지 반전 유무 확인
|
|
/// </summary>
|
|
/// <param name="camConfig">카메라 컨피그</param>
|
|
/// <returns>이미지 반전 유무</returns>
|
|
public bool IsFlipEnabled(CamConfig camConfig) {
|
|
return CogEnvironment.Instance.IsFlipEnabled(camConfig);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 이미지 회전 유무 확인
|
|
/// </summary>
|
|
/// <param name="camConfig">카메라 컨피그</param>
|
|
/// <returns>이미지 회전 유무</returns>
|
|
public bool IsRotationEnabled(CamConfig camConfig) {
|
|
return CogEnvironment.Instance.IsRotationEnabled(camConfig);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 이미지 세로 사이즈가 가로 사이즈보다 큰지 확인
|
|
/// </summary>
|
|
/// <param name="camConfig">카메라 컨피그</param>
|
|
/// <returns>이미지 세로 사이즈가 가로 사이즈보다 크면 True</returns>
|
|
public bool IsHeightLongerThanWidth(CamConfig camConfig) {
|
|
return CogEnvironment.Instance.IsHeightLongerThanWidth(camConfig);
|
|
}
|
|
}
|
|
} |