| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 | #pragma once#include "BSEImgClr.h"#include "OTSImgProcPrmClr.h"#include "OTSImageProcess.h"#include <OTSFieldDataClr.h>#include "../OTSLog/COTSUtilityDllFunExport.h"namespace OTSCLRINTERFACE{	using namespace OTSCLRINTERFACE;	public ref class ImageProForClr	{	public:		  bool GetFieldDataFromImage(CBSEImgClr^ bseImg, COTSImgProcPrmClr^ perameter, double a_PixelSize, COTSFieldDataClr^ fieldData)		{			 			bool ret = COTSImageProcess::RemoveBGByCVconnectivities(bseImg->GetBSEImgPtr(), perameter->GetImgPrcPrmPtr(),a_PixelSize, fieldData->GetOTSFieldDataPtr());			return ret;		}		  bool GetParticlesBySpecialPartGrayRange(CBSEImgClr^ bseImg, CIntRangeClr^ grayRange, CDoubleRangeClr^ diameterRange,double a_PixelSize, COTSFieldDataClr^ fieldData)		  {			  bool ret = COTSImageProcess::GetParticlesBySpecialGrayRange(bseImg->GetBSEImgPtr(), grayRange->GetCIntRangePtr(),diameterRange->GetCDoubleRangePtr(), a_PixelSize,fieldData->GetOTSFieldDataPtr());			  return ret;		  }		  bool CalcuParticleImagePropertes(COTSParticleClr^ particle, double a_PixelSize)		  {			  bool ret = COTSImageProcess::CalcuParticleImagePropertes(particle->GetOTSParticlePtr(), a_PixelSize);			  return ret;		  }		 		  BOOL MergeBigBoundaryParticles(System::Collections::Generic::List<COTSFieldDataClr^>^  allFields,  double pixelSize, int scanFieldSize, Size ResolutionSize, System::Collections::Generic::List<COTSParticleClr^>^ mergedParts)		  {			  std::vector<COTSFieldDataPtr> allFlds;			  COTSParticleList mergedParticles;			  for each (auto f in allFields)			  {				  allFlds.push_back(f->GetOTSFieldDataPtr());			  }			  CSize CResolutionSize;			  CResolutionSize.cx = ResolutionSize.Width;			  CResolutionSize.cy = ResolutionSize.Height;			  bool ret = COTSImageProcess::MergeBigBoundaryParticles(allFlds, pixelSize, scanFieldSize, CResolutionSize, mergedParticles);			  for each (auto p in mergedParticles)			  {				  mergedParts->Add(gcnew COTSParticleClr(p));			  }			  return ret;		  }		  void RemoveBackGround(CBSEImgClr^ a_pImgIn, COTSImgProcPrmClr^ a_pImageProcessParam, CBSEImgClr^ a_pImgOut, long% foundedPixelNum)		  {			  // the background  pixel will be 0,and the other part will be 255.			  long num = 0;			 COTSImageProcess::RemoveBackGround(a_pImgIn->GetBSEImgPtr(), a_pImageProcessParam->GetImgPrcPrmPtr(), a_pImgOut->GetBSEImgPtr(), num);			 foundedPixelNum = num;			return ;		  }		  void GetSpecialGrayRangeImage(CBSEImgClr^ a_pImgIn, CIntRangeClr^ a_SpecialGrayRange, CBSEImgClr^ a_pBinImgOut, long% foundedPixelNum)		  {		  			  long num = 0;			  COTSImageProcess::GetSpecialGrayRangeImage(a_pImgIn->GetBSEImgPtr(), a_SpecialGrayRange->GetCIntRangePtr(), a_pBinImgOut->GetBSEImgPtr(), num);			  foundedPixelNum = num;		  }	};}
 |