154 lines
5.8 KiB
C#
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);
|
|
}
|
|
}
|
|
} |