using Aurora.Api.DataType;
using Matrox.MatroxImagingLibrary;
using System.Collections.Generic;
using System.Windows;
using VisionCommon;
namespace MilCommon {
///
/// MIL or Cognex 상호참조 해결을 위한 클래스
///
public class IpEnvironment : IIpEnvironment {
///
/// 이미지 픽셀 클리어
///
/// 이미지
public void ClearImage(object image) {
MilEnvironment.ClearImage(image);
}
///
/// 이미지 리소스 회수
///
/// 이미지
/// 성공 유무
public int FreeImage(object image) {
return MilEnvironment.FreeImage((MIL_ID)image);
}
///
/// 이미지 저장
///
/// 파일 경로
/// 이미지
/// 성공 유무
public int SaveImage(string filePath, object image) {
return MilEnvironment.SaveImage(filePath, (MIL_ID)image);
}
///
/// 이미지 로드
///
/// 파일 경로
/// 이미지
public object LoadImage(string filePath) {
throw new System.NotImplementedException();
}
///
/// 이미지 로드 (MIL 전용)
///
/// 파일 경로
/// 보드 타입
/// 보드 슬롯 위치
/// 이미지
public object LoadImage(string filePath, eBoardType boardType, eBoardSlotPos boardSlotPos) {
return MilEnvironment.LoadImage(filePath, boardType, boardSlotPos);
}
///
/// 이미지 사이즈 가져오기
///
/// 이미지
/// 이미지 사이즈
public ImageSize GetImageSize(object image) {
return MilEnvironment.GetImageSize((MIL_ID)image);
}
///
/// 이미지 중심좌표 가져오기
///
/// 이미지
/// 중심좌표
public ImagePoint GetImageCenter(object image) {
return MilEnvironment.GetImageCenter((MIL_ID)image);
}
///
/// 이미지 사이즈 동일 여부 체크
///
/// 이미지 사이즈 1
/// 이미지 사이즈 2
/// 이미지 사이즈 동일 여부
public bool ImageSizeEquals(ImageSize imageSize1, ImageSize imageSize2) {
return MilEnvironment.ImageSizeEquals(imageSize1, imageSize2);
}
///
/// 이미지의 ROI 내에서 Pixel Sharpness 값 가져오기
///
/// 이미지
/// Rect
/// Pixel Sharpness 값
public int GetSharpnessWithCropRoi(object image, Rect cropRoi) {
return MilEnvironment.GetSharpnessWithCropRoi((MIL_ID)image, cropRoi);
}
///
/// 이미지의 ROI 내에서 Pixel Sharpness 값 가져오기
///
/// 이미지
/// ROI
/// Pixel Sharpness 값
public int GetSharpnessWithCropRoi(object image, ROI cropRoi) {
return MilEnvironment.GetSharpnessWithCropRoi((MIL_ID)image, cropRoi);
}
///
/// Overlay 이미지 저장
///
/// 파일 경로
/// 모든 FOV 정보
/// 디스플레이 타입
/// 성공 유무
public int SaveScreenShot(string filePath, List fovInfos, eDisplayType displayType, object image = null) {
return MilEnvironment.SaveScreenShot(filePath, fovInfos, displayType, image);
}
///
/// 이미지 반전 유무 확인
///
/// 카메라 컨피그
/// 이미지 반전 유무
public bool IsFlipEnabled(CamConfig camConfig) {
return MilEnvironment.Instance.IsFlipEnabled(camConfig);
}
///
/// 이미지 회전 유무 확인
///
/// 카메라 컨피그
/// 이미지 회전 유무
public bool IsRotationEnabled(CamConfig camConfig) {
return MilEnvironment.Instance.IsRotationEnabled(camConfig);
}
///
/// 이미지 세로 사이즈가 가로 사이즈보다 큰지 확인
///
/// 카메라 컨피그
/// 이미지 세로 사이즈가 가로 사이즈보다 크면 True
public bool IsHeightLongerThanWidth(CamConfig camConfig) {
return MilEnvironment.Instance.IsHeightLongerThanWidth(camConfig);
}
}
}