2026-01-26 14:51:28 +09:00

154 lines
5.8 KiB
C#

using Aurora.Api.DataType;
using Matrox.MatroxImagingLibrary;
using System.Collections.Generic;
using System.Windows;
using VisionCommon;
namespace MilCommon {
/// <summary>
/// MIL or Cognex 상호참조 해결을 위한 클래스
/// </summary>
public class IpEnvironment : IIpEnvironment {
/// <summary>
/// 이미지 픽셀 클리어
/// </summary>
/// <param name="image">이미지</param>
public void ClearImage(object image) {
MilEnvironment.ClearImage((MIL_ID)image);
}
/// <summary>
/// 이미지 리소스 회수
/// </summary>
/// <param name="image">이미지</param>
/// <returns>성공 유무</returns>
public int FreeImage(object image) {
return MilEnvironment.FreeImage((MIL_ID)image);
}
/// <summary>
/// 이미지 저장
/// </summary>
/// <param name="filePath">파일 경로</param>
/// <param name="image">이미지</param>
/// <returns>성공 유무</returns>
public int SaveImage(string filePath, object image) {
return MilEnvironment.SaveImage(filePath, (MIL_ID)image);
}
/// <summary>
/// 이미지 로드
/// </summary>
/// <param name="filePath">파일 경로</param>
/// <returns>이미지</returns>
public object LoadImage(string filePath) {
throw new System.NotImplementedException();
}
/// <summary>
/// 이미지 로드
/// </summary>
/// <param name="filePath">파일 경로</param>
/// <param name="camConfig">카메라 컨피그</param>
/// <returns>이미지</returns>
public object LoadImage(string filePath, CamConfig camConfig) {
return MilEnvironment.LoadImage(filePath, camConfig);
}
/// <summary>
/// 이미지 자르기
/// </summary>
/// <param name="image">이미지</param>
/// <param name="cropRoi">자를 영역</param>
/// <returns>자른 이미지</returns>
public object CropImage(object image, ROI cropRoi) {
return MilEnvironment.CropImage((MIL_ID)image, cropRoi);
}
/// <summary>
/// 이미지 사이즈 가져오기
/// </summary>
/// <param name="image">이미지</param>
/// <returns>이미지 사이즈</returns>
public ImageSize GetImageSize(object image) {
return MilEnvironment.GetImageSize((MIL_ID)image);
}
/// <summary>
/// 이미지 중심좌표 가져오기
/// </summary>
/// <param name="image">이미지</param>
/// <returns>중심좌표</returns>
public ImagePoint GetImageCenter(object image) {
return MilEnvironment.GetImageCenter((MIL_ID)image);
}
/// <summary>
/// 이미지 사이즈 동일 여부 체크
/// </summary>
/// <param name="imageSize1">이미지 사이즈 1</param>
/// <param name="imageSize2">이미지 사이즈 2</param>
/// <returns>이미지 사이즈 동일 여부</returns>
public bool ImageSizeEquals(ImageSize imageSize1, ImageSize imageSize2) {
return MilEnvironment.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 MilEnvironment.GetSharpnessWithCropRoi((MIL_ID)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 MilEnvironment.GetSharpnessWithCropRoi((MIL_ID)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 MilEnvironment.SaveScreenShot(filePath, fovInfos, displayType, image);
}
/// <summary>
/// 이미지 반전 유무 확인
/// </summary>
/// <param name="camConfig">카메라 컨피그</param>
/// <returns>이미지 반전 유무</returns>
public bool IsFlipEnabled(CamConfig camConfig) {
return MilEnvironment.Instance.IsFlipEnabled(camConfig);
}
/// <summary>
/// 이미지 회전 유무 확인
/// </summary>
/// <param name="camConfig">카메라 컨피그</param>
/// <returns>이미지 회전 유무</returns>
public bool IsRotationEnabled(CamConfig camConfig) {
return MilEnvironment.Instance.IsRotationEnabled(camConfig);
}
/// <summary>
/// 이미지 세로 사이즈가 가로 사이즈보다 큰지 확인
/// </summary>
/// <param name="camConfig">카메라 컨피그</param>
/// <returns>이미지 세로 사이즈가 가로 사이즈보다 크면 True</returns>
public bool IsHeightLongerThanWidth(CamConfig camConfig) {
return MilEnvironment.Instance.IsHeightLongerThanWidth(camConfig);
}
}
}