예제 #1
0
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
예제 #2
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
예제 #3
0
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
예제 #4
0
파일: grab_2camera.py 프로젝트: Ryu-J/MILPY
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