コード例 #1
0
ファイル: ssimlib.py プロジェクト: andrestobelem/metnum
def main():
    """Main function for pyssim."""
    description = '\n'.join([
        'Compares an image with a list of images using the SSIM metric.',
        '  Example:',
        '    pyssim test-images/test1-1.png "test-images/*"'
    ])

    parser = argparse.ArgumentParser(
        prog='pyssim', formatter_class=argparse.RawTextHelpFormatter,
        description=description)
    parser.add_argument(
        'base_image', metavar='image1.png', type=argparse.FileType('r'))
    parser.add_argument(
        'comparison_images', metavar='image path with* or image2.png')
    args = parser.parse_args()
    gaussian_kernel_sigma = 1.5
    gaussian_kernel_width = 11
    gaussian_kernel_1d = get_gaussian_kernel(
        gaussian_kernel_width, gaussian_kernel_sigma)

    comparison_images = glob.glob(args.comparison_images)
    is_a_single_image = len(comparison_images) == 1

    for comparison_image in comparison_images:
        ssim_value = SSIM(args.base_image.name, gaussian_kernel_1d).ssim_value(
            comparison_image)
        if is_a_single_image:
            sys.stdout.write('%.7g' % ssim_value)
        else:
            sys.stdout.write('%s - %s: %.7g' % (
                args.base_image.name, comparison_image, ssim_value))
        sys.stdout.write('\n')
コード例 #2
0
ファイル: evaluations.py プロジェクト: leonwyang/cs230project
def SSIM_Array(arr1, arr2):
    img1 = Image.fromarray(arr1.astype('uint8'), 'RGB')
    img2 = Image.fromarray(arr2.astype('uint8'),'RGB')
    gaussian_kernel_sigma = 1.5
    gaussian_kernel_width = 11
    gaussian_kernel_1d = get_gaussian_kernel(gaussian_kernel_width, gaussian_kernel_sigma)
    return SSIM(img1,gaussian_kernel_1d).ssim_value(img2)
コード例 #3
0
ファイル: ssimlib.py プロジェクト: rosnikv/LipReading
def main():
    """Main function for pyssim."""
    description = "\n".join(
        [
            "Compares an image with a list of images using the SSIM metric.",
            "  Example:",
            '    pyssim test-images/test1-1.png "test-images/*"',
        ]
    )

    parser = argparse.ArgumentParser(
        prog="pyssim", formatter_class=argparse.RawTextHelpFormatter, description=description
    )
    parser.add_argument("base_image", metavar="image1.png", type=argparse.FileType("r"))
    parser.add_argument("comparison_images", metavar="image path with* or image2.png")
    args = parser.parse_args()
    gaussian_kernel_sigma = 1.5
    gaussian_kernel_width = 11
    gaussian_kernel_1d = get_gaussian_kernel(gaussian_kernel_width, gaussian_kernel_sigma)

    comparison_images = glob.glob(args.comparison_images)
    is_a_single_image = len(comparison_images) == 1

    for comparison_image in comparison_images:
        ssim_value = SSIM(args.base_image.name, gaussian_kernel_1d).ssim_value(comparison_image)
        if is_a_single_image:
            sys.stdout.write("%.7g" % ssim_value)
        else:
            sys.stdout.write("%.7g	%s - %s " % (ssim_value, comparison_image, args.base_image.name))
        sys.stdout.write("\n")
コード例 #4
0
ファイル: ssimlib.py プロジェクト: nagyistge/LipReading-1
def main():
    """Main function for pyssim."""
    description = '\n'.join([
        'Compares an image with a list of images using the SSIM metric.',
        '  Example:', '    pyssim test-images/test1-1.png "test-images/*"'
    ])

    parser = argparse.ArgumentParser(
        prog='pyssim',
        formatter_class=argparse.RawTextHelpFormatter,
        description=description)
    parser.add_argument('base_image',
                        metavar='image1.png',
                        type=argparse.FileType('r'))
    parser.add_argument('comparison_images',
                        metavar='image path with* or image2.png')
    args = parser.parse_args()
    gaussian_kernel_sigma = 1.5
    gaussian_kernel_width = 11
    gaussian_kernel_1d = get_gaussian_kernel(gaussian_kernel_width,
                                             gaussian_kernel_sigma)

    comparison_images = glob.glob(args.comparison_images)
    is_a_single_image = len(comparison_images) == 1

    for comparison_image in comparison_images:
        ssim_value = SSIM(args.base_image.name,
                          gaussian_kernel_1d).ssim_value(comparison_image)
        if is_a_single_image:
            sys.stdout.write('%.7g' % ssim_value)
        else:
            sys.stdout.write(
                '%.7g	%s - %s ' %
                (ssim_value, comparison_image, args.base_image.name))
        sys.stdout.write('\n')
コード例 #5
0
ファイル: ssimlib.py プロジェクト: chaosmail/pyssim
def main():
    """Main function for pyssim."""

    description = '\n'.join([
        'Compares an image with a list of images using the SSIM metric.',
        '  Example:',
        '    pyssim test-images/test1-1.png "test-images/*"'
    ])

    parser = argparse.ArgumentParser(
        prog='pyssim', formatter_class=argparse.RawTextHelpFormatter,
        description=description)
    parser.add_argument('--cw', help='compute the complex wavelet SSIM',
                        action='store_true')
    parser.add_argument(
        'base_image', metavar='image1.png', type=argparse.FileType('r'))
    parser.add_argument(
        'comparison_images', metavar='image path with* or image2.png')
    parser.add_argument('--width', type=int, default=None,
                        help='scales the image before computing SSIM')
    parser.add_argument('--height', type=int, default=None,
                        help='scales the image before computing SSIM')

    args = parser.parse_args()

    if args.width and args.height:
        size = (args.width, args.height)
    else:
        size = None

    if not args.cw:
        gaussian_kernel_sigma = 1.5
        gaussian_kernel_width = 11
        gaussian_kernel_1d = get_gaussian_kernel(
            gaussian_kernel_width, gaussian_kernel_sigma)

    comparison_images = glob.glob(args.comparison_images)
    is_a_single_image = len(comparison_images) == 1

    for comparison_image in comparison_images:

        if args.cw:
            ssim = SSIM(args.base_image.name, size=size)
            ssim_value = ssim.cw_ssim_value(comparison_image)
        else:
            ssim = SSIM(args.base_image.name, gaussian_kernel_1d, size=size)
            ssim_value = ssim.ssim_value(comparison_image)

        if is_a_single_image:
            sys.stdout.write('%.7g' % ssim_value)
        else:
            sys.stdout.write('%s - %s: %.7g' % (
                args.base_image.name, comparison_image, ssim_value))
        sys.stdout.write('\n')
コード例 #6
0
ファイル: ssimlib.py プロジェクト: azman0101/pyssim
def main():
    """Main function for pyssim."""

    description = "\n".join(
        [
            "Compares an image with a list of images using the SSIM metric.",
            "  Example:",
            '    pyssim test-images/test1-1.png "test-images/*"',
        ]
    )

    parser = argparse.ArgumentParser(
        prog="pyssim", formatter_class=argparse.RawTextHelpFormatter, description=description
    )
    parser.add_argument("--cw", help="compute the complex wavelet SSIM", action="store_true")
    parser.add_argument("base_image", metavar="image1.png", type=argparse.FileType("r"))
    parser.add_argument("comparison_images", metavar="image path with* or image2.png")
    parser.add_argument("--width", type=int, default=None, help="scales the image before computing SSIM")
    parser.add_argument("--height", type=int, default=None, help="scales the image before computing SSIM")

    args = parser.parse_args()

    if args.width and args.height:
        size = (args.width, args.height)
    else:
        size = None

    if not args.cw:
        gaussian_kernel_sigma = 1.5
        gaussian_kernel_width = 11
        gaussian_kernel_1d = get_gaussian_kernel(gaussian_kernel_width, gaussian_kernel_sigma)

    comparison_images = glob.glob(args.comparison_images)
    is_a_single_image = len(comparison_images) == 1

    for comparison_image in comparison_images:

        try:

            if args.cw:
                ssim = SSIM(args.base_image.name, size=size)
                ssim_value = ssim.cw_ssim_value(comparison_image)
            else:
                ssim = SSIM(args.base_image.name, gaussian_kernel_1d, size=size)
                ssim_value = ssim.ssim_value(comparison_image)

            if is_a_single_image:
                sys.stdout.write("%.7g" % ssim_value)
            else:
                sys.stdout.write("%s,%s,%.7g" % (args.base_image.name, comparison_image, ssim_value))
            sys.stdout.write("\n")
        except IOError as e:
            logging.info(e)
コード例 #7
0
def similarity(prefix, img1, img2, arr, mode, lock):
    img1_path = 'subset\subset_images\\' + img1 + '.jpg'
    img2_path = 'subset\subset_images\\' + img2 + '.jpg'
    if mode == 'ssim':
        gaussian_kernel_sigma = 1.5
        gaussian_kernel_width = 11
        gaussian_kernel_1d = get_gaussian_kernel(gaussian_kernel_width, gaussian_kernel_sigma)
        size = None
        ssim = pyssim.SSIM(img1_path, gaussian_kernel_1d, size=size)
        sim = ssim.ssim_value(img2_path)
    else:
        sim = pyssim.SSIM(img1_path).cw_ssim_value(img2_path)
    with lock:
        arr.append([img1, img2, sim])
コード例 #8
0
ファイル: matriceEvaluation.py プロジェクト: GedamuA/APP-
def compare(path_Groundimage, path_Generate_image):
    gaussian_kernel_sigma = 1.5
    gaussian_kernel_width = 11
    gaussian_kernel_1d = get_gaussian_kernel(gaussian_kernel_width,
                                             gaussian_kernel_sigma)
    size = (64, 64)

    im = Image.open(path_Groundimage)
    im = im.resize(size, Image.ANTIALIAS)

    # slightly rotated image
    im_rot = Image.open(path_Generate_image)
    im_rot = im_rot.resize(size, Image.ANTIALIAS)
    # print("========== SSIM results ==========")
    ssim_rot = SSIM(im, gaussian_kernel_1d).ssim_value(im_rot)
    # print("========== CV-SSIM results ==========")
    cw_ssim_rot = SSIM(im).cw_ssim_value(im_rot)
    # print("CW-SSIM of generated image and ground truth with  view 0 %.4f" % cw_ssim_rot)
    return ssim_rot, cw_ssim_rot
コード例 #9
0
def compare_image(this_image):
    "识别图像"
    ret = 9
    gaussian_kernel_sigma = 1.5
    gaussian_kernel_width = 11
    gaussian_kernel_1d = get_gaussian_kernel(gaussian_kernel_width,
                                             gaussian_kernel_sigma)
    size = None
    ssim = SSIM(this_image, gaussian_kernel_1d, size=size)
    #ssim_value = ssim.ssim_value(img_0)
    count = 0
    for comparison_image in tup_images:
        #comparison_image = comparison_image.crop((3,3,14,14))
        ssim_value = ssim.ssim_value(comparison_image)
        #print(count, ssim_value)

        if ssim_value > compare_threshold:
            #print(count, ssim_value, tup_code[count])
            ret = tup_code[count]
            break

        count = count + 1
    return ret
コード例 #10
0
    edgeGuard = inputfile['edgeGuard']

    for frameFile in glob.glob(folder + "*.png"):
        frameImage = cv2.imread(frameFile)
        break

    directory = "./" + spritesDirectory + "/"

    sprites = {}
    for filename in glob.glob(directory + "*.png"):
        sprite_gray = ImageOps.grayscale(Image.open(filename))
        sprites[filename] = sprite_gray

    gaussian_kernel_sigma = 1.5
    gaussian_kernel_width = 11
    gaussian_kernel_1d = get_gaussian_kernel(gaussian_kernel_width,
                                             gaussian_kernel_sigma)

    matching = {}
    maxVal = float('-inf')
    for sprite1 in sprites:
        matching[sprite1] = {}
        for sprite2 in sprites:
            matching[sprite1][sprite2] = SSIM(
                sprites[sprite1], gaussian_kernel_1d
            ).ssim_value(
                sprites[sprite2]
            )  #np.max(sp.signal.correlate2d(sprites[sprite1],sprites[sprite2]))
            if matching[sprite1][sprite2] > maxVal:
                maxVal = matching[sprite1][sprite2]

    for s1 in matching:
コード例 #11
0
ファイル: VideoParser.py プロジェクト: adamsumm/N-ES-Vision
			sprite_gray = cv2.cvtColor(img_rgb, cv2.COLOR_BGR2GRAY)#Gray is faster to match
			splits = filename.split("/")
			spritename = splits[len(splits)-1]
			sprites.append((sprite_gray, spritename))

		#Initialize Frame Parser
		fp = FrameParser(threshold)

		target = open(fname,"wb")
		writer = csv.writer(target)
		column = ["frame", "spritename", "x", "y", "w", "h", "confidence"]
		writer.writerow(column)

		gaussian_kernel_sigma = 1.5
		gaussian_kernel_width = 11
		gaussian_kernel_1d = get_gaussian_kernel(gaussian_kernel_width, gaussian_kernel_sigma)

		matching = {}
		maxVal = float('-inf')
		for sprite1 in spriteNames:
			matching[sprite1]  = {}
			for sprite2 in spriteNames:
				matching[sprite1][sprite2] = SSIM(spriteNames[sprite1], gaussian_kernel_1d).ssim_value(spriteNames[sprite2])#np.max(sp.signal.correlate2d(sprites[sprite1],sprites[sprite2]))
				if matching[sprite1][sprite2] > maxVal:
					maxVal = matching[sprite1][sprite2]

		for s1 in matching:
			for s2 in matching[s1]:
				matching[s1][s2] /= maxVal
				print s1, s2, matching[s1][s2]
		for frameFile in glob.glob(folder+"*.png"):
コード例 #12
0
ファイル: ssimlib.py プロジェクト: leolca/pyssim
def main():
    """Main function for pyssim."""

    description = '\n'.join([
        'Compares an image with a list of images using the SSIM metric.',
        '  Example:', '    pyssim test-images/test1-1.png "test-images/*"'
    ])

    parser = argparse.ArgumentParser(
        prog='pyssim',
        formatter_class=argparse.RawTextHelpFormatter,
        description=description)
    parser.add_argument('--cw',
                        help='compute the complex wavelet SSIM',
                        action='store_true')
    parser.add_argument('base_image',
                        metavar='image1.png',
                        type=argparse.FileType('r'))
    parser.add_argument('comparison_images',
                        metavar='image path with* or image2.png')
    parser.add_argument('--width',
                        type=int,
                        default=None,
                        help='scales the image before computing SSIM')
    parser.add_argument('--height',
                        type=int,
                        default=None,
                        help='scales the image before computing SSIM')

    args = parser.parse_args()

    if args.width and args.height:
        size = (args.width, args.height)
    else:
        size = None

    if not args.cw:
        gaussian_kernel_sigma = 1.5
        gaussian_kernel_width = 11
        gaussian_kernel_1d = get_gaussian_kernel(gaussian_kernel_width,
                                                 gaussian_kernel_sigma)

    comparison_images = glob.glob(args.comparison_images)
    is_a_single_image = len(comparison_images) == 1

    for comparison_image in comparison_images:

        if args.cw:
            ssim = SSIM(args.base_image.name, size=size)
            ssim_value = ssim.cw_ssim_value(comparison_image)
        else:
            ssim = SSIM(args.base_image.name, gaussian_kernel_1d, size=size)
            ssim_value = ssim.ssim_value(comparison_image)

        if is_a_single_image:
            sys.stdout.write('%.7g' % ssim_value)
        else:
            sys.stdout.write(
                '%s - %s: %.7g' %
                (args.base_image.name, comparison_image, ssim_value))
        sys.stdout.write('\n')