def ProcessingFunction_1(HookType, HookId, HookDataPtr): # Retrieve the MIL_ID of the grabbed buffer. ModifiedBufferId = MIL.MIL_ID(0) MIL.MdigGetHookInfo(HookId, MIL.M_MODIFIED_BUFFER + MIL.M_BUFFER_ID, ctypes.byref(ModifiedBufferId)) # Extract the userdata structure UserData = ctypes.cast(ctypes.c_void_p(HookDataPtr), ctypes.POINTER(HookDataStruct)).contents # Increment the frame counter. UserData.ProcessedImageCount += 1 # Print and draw the frame count (remove to reduce CPU usage). print("2_Processing frame #{:d}.\r".format(UserData.ProcessedImageCount), end='') MIL.MgraText(MIL.M_DEFAULT, ModifiedBufferId, STRING_POS_X, STRING_POS_Y, MIL.MIL_TEXT("{:d}".format(UserData.ProcessedImageCount))) # Execute the processing and update the display. MIL.MimArith(ctypes.c_double(ModifiedBufferId.value), 0.0, UserData.MilImageDisp, MIL.M_ABS) MIL.MbufExport( MIL.MIL_TEXT(".//test_image//3//Process_FileName{i}.tif".format( i=UserData.ProcessedImageCount)), MIL.M_TIFF, UserData.MilImageDisp) # MIL.MbufExport(MIL.MIL_TEXT(".//test_image//3_bmp//Process_FileName{i}.bmp".format(i=UserData.ProcessedImageCount)), MIL.M_BMP, UserData.MilImageDisp) time.sleep(0.01) return 0
def MGrab(): rootdir = "Scanner" try: if not os.path.exists(rootdir): os.makedirs(rootdir) except OSError: print('Error: Creating directory. ' + rootdir) # Allocate defaults. MilApplication = MIL.MappAlloc(MIL.MIL_TEXT("M_DEFAULT"), MIL.M_DEFAULT, None) MilSystem = MIL.MsysAlloc(MIL.M_DEFAULT, MIL.M_SYSTEM_HOST, MIL.M_DEV0, MIL.M_DEFAULT, None) MilDisplay_0 = MIL.MdispAlloc(MilSystem, MIL.M_DEFAULT, MIL.MIL_TEXT("M_DEFAULT"), MIL.M_DEFAULT, None) MilDisplay_1 = MIL.MdispAlloc(MilSystem, MIL.M_DEFAULT, MIL.MIL_TEXT("M_DEFAULT"), MIL.M_DEFAULT, None) MilDigitizer_0 = MIL.MdigAlloc(MilSystem, MIL.M_DEV0, MIL.MIL_TEXT("M_DEFAULT"), MIL.M_DEFAULT, None) MilDigitizer_1 = MIL.MdigAlloc(MilSystem, MIL.M_DEV1, MIL.MIL_TEXT("M_DEFAULT"), MIL.M_DEFAULT, None) SizeX_0 = MIL.MdigInquire(MilDigitizer_0, MIL.M_SIZE_X, None) SizeY_0 = MIL.MdigInquire(MilDigitizer_0, MIL.M_SIZE_Y, None) SizeX_1 = MIL.MdigInquire(MilDigitizer_1, MIL.M_SIZE_X, None) SizeY_1 = MIL.MdigInquire(MilDigitizer_1, MIL.M_SIZE_Y, None) SizeBand_Par = MIL.MdigInquire(MilDigitizer_0, MIL.M_SIZE_BAND, None) SizeX_Par = MIL.MdigInquire(MilDigitizer_0, MIL.M_SIZE_X, None) SizeY_Par = MIL.MdigInquire(MilDigitizer_0, MIL.M_SIZE_Y, None) MilImageParent = MIL.MbufAllocColor( MilSystem, SizeBand_Par, SizeX_Par * 2, SizeY_Par, 8 + MIL.M_UNSIGNED, MIL.M_IMAGE + MIL.M_PROC + MIL.M_DISP + MIL.M_GRAB, None) MIL.MbufClear(MilImageParent, MIL.M_COLOR_BLACK) # MilImageDisp_0 = MIL.MbufAllocColor(MilSystem, # SizeBand_0, # SizeX_0, # SizeY_0, # 8 + MIL.M_UNSIGNED, # MIL.M_IMAGE + # MIL.M_PROC + MIL.M_DISP + MIL.M_GRAB, # None) MilImageDisp_0 = MIL.MbufChildColor2d(MilImageParent, MIL.M_ALL_BANDS, 0, 0, SizeX_0, SizeY_0, None) MIL.MbufClear(MilImageDisp_0, MIL.M_COLOR_BLACK) # MilImageDisp_1 = MIL.MbufAllocColor(MilSystem, # SizeBand_1, # SizeX_1, # SizeY_1, # 8 + MIL.M_UNSIGNED, # MIL.M_IMAGE + # MIL.M_PROC + MIL.M_DISP + MIL.M_GRAB, # None) # MilImageDisp_1 = MIL.MbufChildColor2d(MilImageParent, MIL.M_ALL_BANDS, SizeX_0, 0, SizeX_1, SizeY_1, None) MIL.MbufClear(MilImageDisp_1, MIL.M_COLOR_BLACK) MIL.MdispSelect(MilDisplay_0, MilImageDisp_0) MIL.MdispSelect(MilDisplay_1, MilImageDisp_1) # Print a message. print("-----------------------------\n") for i in range(100): MIL.MdigGrabContinuous(MilDigitizer_0, MilImageDisp_0) MIL.MdigGrabContinuous(MilDigitizer_1, MilImageDisp_1) # Halt continuous grab. MIL.MdigHalt(MilDigitizer_0) MIL.MdigHalt(MilDigitizer_1) # MIL.MbufExport(MIL.MIL_TEXT("0_FileName{i}.tif".format(i=i)), MIL.M_TIFF, MilImageDisp_0) # MIL.MbufExport(MIL.MIL_TEXT("1_FileName{i}.tif".format(i=i)), MIL.M_TIFF, MilImageDisp_1) MIL.MbufExport( MIL.MIL_TEXT("{}/F_FileName{i}.tif".format(rootdir, i=i)), MIL.M_TIFF, MilImageParent) MIL.MbufFree(MilImageDisp_0) MIL.MbufFree(MilImageDisp_1) MIL.MbufFree(MilImageParent) MIL.MdispFree(MilDisplay_0) MIL.MdispFree(MilDisplay_1) MIL.MdigFree(MilDigitizer_0) MIL.MdigFree(MilDigitizer_1) MIL.MsysFree(MilSystem) MIL.MappFree(MilApplication) return
def MGrab(ScannerID, nImage): ## Directory Check rootdir = "Scanner/{}".format(ScannerID) try: if not os.path.exists(rootdir): os.makedirs(rootdir) except OSError: print('Error: Creating directory. ' + rootdir) # Allocate defaults. MilApplication = MIL.MappAlloc(MIL.MIL_TEXT("M_DEFAULT"), MIL.M_DEFAULT, None) MilSystem = MIL.MsysAlloc(MIL.M_DEFAULT, MIL.M_SYSTEM_HOST, MIL.M_DEV0, MIL.M_DEFAULT, None) MilDisplay_0 = MIL.MdispAlloc(MilSystem, MIL.M_DEFAULT, MIL.MIL_TEXT("M_DEFAULT"), MIL.M_DEFAULT, None) MilDisplay_1 = MIL.MdispAlloc(MilSystem, MIL.M_DEFAULT, MIL.MIL_TEXT("M_DEFAULT"), MIL.M_DEFAULT, None) MilDigitizer_0 = MIL.MdigAlloc(MilSystem, MIL.M_DEV0, MIL.MIL_TEXT("M_DEFAULT"), MIL.M_DEFAULT, None) MilDigitizer_1 = MIL.MdigAlloc(MilSystem, MIL.M_DEV1, MIL.MIL_TEXT("M_DEFAULT"), MIL.M_DEFAULT, None) SizeBand_0 = MIL.MdigInquire(MilDigitizer_0, MIL.M_SIZE_BAND, None) SizeX_0 = MIL.MdigInquire(MilDigitizer_0, MIL.M_SIZE_X, None) SizeY_0 = MIL.MdigInquire(MilDigitizer_0, MIL.M_SIZE_Y, None) SizeBand_1 = MIL.MdigInquire(MilDigitizer_0, MIL.M_SIZE_BAND, None) SizeX_1 = MIL.MdigInquire(MilDigitizer_0, MIL.M_SIZE_X, None) SizeY_1 = MIL.MdigInquire(MilDigitizer_0, MIL.M_SIZE_Y, None) MilImageDisp_0 = MIL.MbufAllocColor( MilSystem, SizeBand_0, SizeX_0, SizeY_0, 8 + MIL.M_UNSIGNED, MIL.M_IMAGE + MIL.M_PROC + MIL.M_DISP + MIL.M_GRAB, None) MIL.MbufClear(MilImageDisp_0, MIL.M_COLOR_BLACK) MilImageDisp_1 = MIL.MbufAllocColor( MilSystem, SizeBand_1, SizeX_1, SizeY_1, 8 + MIL.M_UNSIGNED, MIL.M_IMAGE + MIL.M_PROC + MIL.M_DISP + MIL.M_GRAB, None) MIL.MbufClear(MilImageDisp_1, MIL.M_COLOR_BLACK) MIL.MdispSelect(MilDisplay_0, MilImageDisp_0) MIL.MdispSelect(MilDisplay_1, MilImageDisp_1) # Print a message. print("-----------------------------\n") for i in range(nImage): MIL.MdigGrabContinuous(MilDigitizer_0, MilImageDisp_0) MIL.MdigGrabContinuous(MilDigitizer_1, MilImageDisp_1) # Halt continuous grab. MIL.MdigHalt(MilDigitizer_0) MIL.MdigHalt(MilDigitizer_1) MIL.MbufExport(MIL.MIL_TEXT("{}/0_FileName{}.tif".format(rootdir, i)), MIL.M_TIFF, MilImageDisp_0) MIL.MbufExport(MIL.MIL_TEXT("{}/1_FileName{}.tif".format(rootdir, i)), MIL.M_TIFF, MilImageDisp_1) MIL.MbufFree(MilImageDisp_0) MIL.MbufFree(MilImageDisp_1) MIL.MdispFree(MilDisplay_0) MIL.MdispFree(MilDisplay_1) MIL.MdigFree(MilDigitizer_0) MIL.MdigFree(MilDigitizer_1) MIL.MsysFree(MilSystem) MIL.MappFree(MilApplication) return
def MGrab(): # Allocate defaults. MilApplication = MIL.MappAlloc(MIL.MIL_TEXT("M_DEFAULT"), MIL.M_DEFAULT, None) MilSystem = MIL.MsysAlloc(MIL.M_DEFAULT, MIL.M_SYSTEM_HOST, MIL.M_DEV0, MIL.M_DEFAULT, None) MilDisplay_0 = MIL.MdispAlloc(MilSystem, MIL.M_DEFAULT, MIL.MIL_TEXT("M_DEFAULT"), MIL.M_DEFAULT, None) MilDisplay_1 = MIL.MdispAlloc(MilSystem, MIL.M_DEFAULT, MIL.MIL_TEXT("M_DEFAULT"), MIL.M_DEFAULT, None) MilDigitizer_0 = MIL.MdigAlloc(MilSystem, MIL.M_DEV0, MIL.MIL_TEXT("M_DEFAULT"), MIL.M_DEFAULT, None) MilDigitizer_1 = MIL.MdigAlloc(MilSystem, MIL.M_DEV1, MIL.MIL_TEXT("M_DEFAULT"), MIL.M_DEFAULT, None) SizeBand_0 = MIL.MdigInquire(MilDigitizer_0, MIL.M_SIZE_BAND, None) SizeX_0 = MIL.MdigInquire(MilDigitizer_0, MIL.M_SIZE_X, None) SizeY_0 = MIL.MdigInquire(MilDigitizer_0, MIL.M_SIZE_Y, None) SizeBand_1 = MIL.MdigInquire(MilDigitizer_0, MIL.M_SIZE_BAND, None) SizeX_1 = MIL.MdigInquire(MilDigitizer_0, MIL.M_SIZE_X, None) SizeY_1 = MIL.MdigInquire(MilDigitizer_0, MIL.M_SIZE_Y, None) MilImageDisp_0 = MIL.MbufAllocColor( MilSystem, SizeBand_0, SizeX_0, SizeY_0, 8 + MIL.M_UNSIGNED, MIL.M_IMAGE + MIL.M_PROC + MIL.M_DISP + MIL.M_GRAB, None) MIL.MbufClear(MilImageDisp_0, MIL.M_COLOR_BLACK) MilImageDisp_1 = MIL.MbufAllocColor( MilSystem, SizeBand_1, SizeX_1, SizeY_1, 8 + MIL.M_UNSIGNED, MIL.M_IMAGE + MIL.M_PROC + MIL.M_DISP + MIL.M_GRAB, None) MIL.MbufClear(MilImageDisp_1, MIL.M_COLOR_BLACK) MIL.MdispSelect(MilDisplay_0, MilImageDisp_0) MIL.MdispSelect(MilDisplay_1, MilImageDisp_1) # Print a message. print("-----------------------------\n") for i in range(100): MIL.MdigGrabContinuous(MilDigitizer_0, MilImageDisp_0) MIL.MdigGrabContinuous(MilDigitizer_1, MilImageDisp_1) # Halt continuous grab. MIL.MdigHalt(MilDigitizer_0) MIL.MdigHalt(MilDigitizer_1) MIL.MbufExport(MIL.MIL_TEXT("0_FileName{i}.tif".format(i=i)), MIL.M_TIFF, MilImageDisp_0) MIL.MbufExport(MIL.MIL_TEXT("1_FileName{i}.tif".format(i=i)), MIL.M_TIFF, MilImageDisp_1) MIL.MbufFree(MilImageDisp_0) MIL.MbufFree(MilImageDisp_1) MIL.MdispFree(MilDisplay_0) MIL.MdispFree(MilDisplay_1) MIL.MdigFree(MilDigitizer_0) MIL.MdigFree(MilDigitizer_1) MIL.MsysFree(MilSystem) MIL.MappFree(MilApplication) return