예제 #1
0
 def image(self):
     print("Calculating hologram")
     image = self.image_holo
     image = subtract(image, self.image_ref)
     image = subtract(image, self.image_obj)
     if self.equalize_image:
         image = equalize(image)
     return image
예제 #2
0
 def image(self):
     print("Calculating hologram")
     image = self.image_holo
     image = subtract(image, self.image_ref)
     image = subtract(image, self.image_obj)
     if self.equalize_image:
         image = equalize(image)
     return image
예제 #3
0
 def processor(t_sigma, t_level, equalize_level):
     t_sigma = sigmoid(t_sigma) * 20 + 1
     t_level = sigmoid(t_level)
     equalize_level = sigmoid(equalize_level)
     channels = []
     for ndim in range(3):
         channel = image[:, :, ndim]
         local_context = gaussian_filter(channel, t_sigma)
         #                local_context = median_filter(channel, t_sigma)
         tonemapped = channel - local_context * t_level
         tonemapped = tonemapped.astype(int)
         tonemapped /= 1 - t_level
         equalized = equalize(tonemapped) * equalize_level
         equalized += tonemapped * (1 - equalize_level)
         channels.append(equalized)
     final = np.array(channels).swapaxes(0, 1).swapaxes(1, 2)
     final = normalize(final).astype(np.uint8)
     return final
예제 #4
0
 def processor(t_sigma, t_level, equalize_level):
     t_sigma = sigmoid(t_sigma) * 20 + 1
     t_level = sigmoid(t_level)
     equalize_level = sigmoid(equalize_level)
     channels = []
     for ndim in range(3):
         channel = image[:, :, ndim]
         local_context = gaussian_filter(channel, t_sigma)
         #                local_context = median_filter(channel, t_sigma)
         tonemapped = channel - local_context * t_level
         tonemapped = tonemapped.astype(int)
         tonemapped /= 1 - t_level
         equalized = equalize(tonemapped) * equalize_level
         equalized += tonemapped * (1 - equalize_level)
         channels.append(equalized)
     final = np.array(channels).swapaxes(0, 1).swapaxes(1, 2)
     final = normalize(final).astype(np.uint8)
     return final
예제 #5
0
def main():
    pygame.init()
    camera.init()
    pygame.surfarray.use_arraytype("numpy")

    cams = camera.list_cameras()
    cam = camera.Camera(cams[0], (360, 296))
    cam = camera.Camera(cams[0], (640, 480))
    cam.start()
    fps = 25.0
    window = pygame.display.set_mode((640, 480), 0, 8)
    pygame.display.set_caption("Video")
    screen = pygame.display.get_surface()
    screen.set_palette([(i, i, i) for i in range(256)])

    print("Starting main loop")

    pea_list = [
        ("Spectrum", get_spectrum, get_equalized),
        ("Automask", apply_mask, get_normalized),
        ("Propagation", propagate, get_normalized),
        ("Reconstruction", reconstruct, get_complex_view),
        ]

    set_array = False
    set_equalize = False
    set_normalize = True
    set_pea = False
    pea_level = 1
    distance = 5
    comp_view = "phase"

    while True:
        events = pygame.event.get()
        for event in events:
            if event.type == pygame.QUIT:
                return
            elif event.type == pygame.KEYDOWN:
                if (event.key == pygame.K_q):
                    return

                # IMAGE PROCESSING
                elif (event.key == pygame.K_a):
                    set_array = not set_array
                    print("Converting to array: %s" % set_array)
                elif (event.key == pygame.K_n):
                    set_normalize = not set_normalize
                    print("Normalize: %s" % set_normalize)
                elif (event.key == pygame.K_e):
                    set_equalize = not set_equalize
                    print("Equalize: %s" % set_equalize)

                # PEA
                elif (event.key == pygame.K_p):
                    set_pea = not set_pea
                    print("PEA processing set: %s" % set_pea)
                    print("Setted pea to level %d, %s." % (
                        pea_level, pea_list[pea_level - 1][0]))
                elif (event.key == pygame.K_PAGEUP):
                    pea_level -= 1
                    pea_level = max(pea_level, 1)
                    print("Setted pea to level %d, %s." % (
                        pea_level, pea_list[pea_level - 1][0]))
                elif (event.key == pygame.K_PAGEDOWN):
                    pea_level += 1
                    pea_level = min(pea_level, len(pea_list))
                    print("Setted pea to level %d, %s." % (
                        pea_level, pea_list[pea_level - 1][0]))
                elif (event.key == pygame.K_TAB):
                    comp_view = "phase" if comp_view != "phase" else "mod"
                    print("PEA complex viewer set to: %s" % comp_view)

                # FOCUS DISTANCE
                elif (event.key == pygame.K_DOWN):
                    distance += 5
                    print("Distance: %.1f" % distance)
                elif (event.key == pygame.K_UP):
                    distance -= 5
                    print("Distance: %.1f" % distance)
                elif (event.key == pygame.K_LEFT):
                    distance -= .5
                    print("Distance: %.1f" % distance)
                elif (event.key == pygame.K_RIGHT):
                    distance += .5
                    print("Distance: %.1f" % distance)

                # FULSCREEN
                elif (event.key == pygame.K_f):
                    pygame.display.toggle_fullscreen()

                # CAPTURE
                elif (event.key == pygame.K_c):
                    filename = save_raw(cam)
                    print("Raw image saved to: %s" % filename)

        image = cam.get_image()

        if set_array:
            array = pygame.surfarray.array2d(image)

            if array.ndim > 2:
                array = round(array.mean(-1))
#                array = array[:,:,0] # red
#                array = array[:,:,0] # green
#                array = array[:,:,0] # blue

            if set_equalize:
                array = equalize(array).astype(int)
            elif set_normalize:
                array = normalize(array)

            pygame.surfarray.blit_array(screen, array)

        elif set_pea:
            array = pygame.surfarray.array2d(image)

            if array.ndim > 2:
                array = round(array.mean(-1))
#                array = array[:,:,0] # red
#                array = array[:,:,0] # green
#                array = array[:,:,0] # blue

            pea_algs = pea_list[:pea_level]
            pea_rep = pea_algs[-1][-1]

            for alg in pea_algs:
                try:
                    array = alg[1](array, distance=distance)
                except:
                    print("W: skipped framme's: %s" % alg[0])

            array = pea_rep(array, comp_view=comp_view).astype(int)

            pygame.surfarray.blit_array(screen, array)

        else:
            screen.blit(image, (0,0))

        pygame.display.flip()
        pygame.time.delay(int(1000./fps))
예제 #6
0
def get_equalized(image, **kw):
    return equalize(image)
예제 #7
0
def main():
    pygame.init()
    camera.init()
    pygame.surfarray.use_arraytype("numpy")

    cams = camera.list_cameras()
    cam = camera.Camera(cams[0], (360, 296))
    cam = camera.Camera(cams[0], (640, 480))
    cam.start()
    fps = 25.0
    window = pygame.display.set_mode((640, 480), 0, 8)
    pygame.display.set_caption("Video")
    screen = pygame.display.get_surface()
    screen.set_palette([(i, i, i) for i in range(256)])

    print("Starting main loop")

    pea_list = [
        ("Spectrum", get_spectrum, get_equalized),
        ("Automask", apply_mask, get_normalized),
        ("Propagation", propagate, get_normalized),
        ("Reconstruction", reconstruct, get_complex_view),
    ]

    set_array = False
    set_equalize = False
    set_normalize = True
    set_pea = False
    pea_level = 1
    distance = 5
    comp_view = "phase"

    while True:
        events = pygame.event.get()
        for event in events:
            if event.type == pygame.QUIT:
                return
            elif event.type == pygame.KEYDOWN:
                if event.key == pygame.K_q:
                    return

                # IMAGE PROCESSING
                elif event.key == pygame.K_a:
                    set_array = not set_array
                    print("Converting to array: %s" % set_array)
                elif event.key == pygame.K_n:
                    set_normalize = not set_normalize
                    print("Normalize: %s" % set_normalize)
                elif event.key == pygame.K_e:
                    set_equalize = not set_equalize
                    print("Equalize: %s" % set_equalize)

                # PEA
                elif event.key == pygame.K_p:
                    set_pea = not set_pea
                    print("PEA processing set: %s" % set_pea)
                    print("Setted pea to level %d, %s." % (pea_level, pea_list[pea_level - 1][0]))
                elif event.key == pygame.K_PAGEUP:
                    pea_level -= 1
                    pea_level = max(pea_level, 1)
                    print("Setted pea to level %d, %s." % (pea_level, pea_list[pea_level - 1][0]))
                elif event.key == pygame.K_PAGEDOWN:
                    pea_level += 1
                    pea_level = min(pea_level, len(pea_list))
                    print("Setted pea to level %d, %s." % (pea_level, pea_list[pea_level - 1][0]))
                elif event.key == pygame.K_TAB:
                    comp_view = "phase" if comp_view != "phase" else "mod"
                    print("PEA complex viewer set to: %s" % comp_view)

                # FOCUS DISTANCE
                elif event.key == pygame.K_DOWN:
                    distance += 5
                    print("Distance: %.1f" % distance)
                elif event.key == pygame.K_UP:
                    distance -= 5
                    print("Distance: %.1f" % distance)
                elif event.key == pygame.K_LEFT:
                    distance -= 0.5
                    print("Distance: %.1f" % distance)
                elif event.key == pygame.K_RIGHT:
                    distance += 0.5
                    print("Distance: %.1f" % distance)

                # FULSCREEN
                elif event.key == pygame.K_f:
                    pygame.display.toggle_fullscreen()

                # CAPTURE
                elif event.key == pygame.K_c:
                    filename = save_raw(cam)
                    print("Raw image saved to: %s" % filename)

        image = cam.get_image()

        if set_array:
            array = pygame.surfarray.array2d(image)

            if array.ndim > 2:
                array = round(array.mean(-1))
            #                array = array[:,:,0] # red
            #                array = array[:,:,0] # green
            #                array = array[:,:,0] # blue

            if set_equalize:
                array = equalize(array).astype(int)
            elif set_normalize:
                array = normalize(array)

            pygame.surfarray.blit_array(screen, array)

        elif set_pea:
            array = pygame.surfarray.array2d(image)

            if array.ndim > 2:
                array = round(array.mean(-1))
            #                array = array[:,:,0] # red
            #                array = array[:,:,0] # green
            #                array = array[:,:,0] # blue

            pea_algs = pea_list[:pea_level]
            pea_rep = pea_algs[-1][-1]

            for alg in pea_algs:
                try:
                    array = alg[1](array, distance=distance)
                except:
                    print("W: skipped framme's: %s" % alg[0])

            array = pea_rep(array, comp_view=comp_view).astype(int)

            pygame.surfarray.blit_array(screen, array)

        else:
            screen.blit(image, (0, 0))

        pygame.display.flip()
        pygame.time.delay(int(1000.0 / fps))
예제 #8
0
def get_equalized(image, **kw):
    return equalize(image)