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')
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)
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")
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')
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')
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)
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])
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
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
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:
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"):
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')