The following program computes the corner strength measure by Yang et al.

#!/usr/bin/env ruby require 'hornetseye' include Hornetseye raise "Syntax: y_b_f_u.rb <input file> <output file>" if ARGV.size != 2 grad_sigma = 1 cov_sigma = 1 noise = 1 m = 0.5 img = MultiArray.load_ubyte( ARGV[0] ).to_dfloat x, y = img.gauss_gradient( grad_sigma, 0 ), img.gauss_gradient( grad_sigma, 1 ) a = ( x ** 2 ).gauss_blur cov_sigma b = ( y ** 2 ).gauss_blur cov_sigma c = ( x * y ).gauss_blur cov_sigma g = ( ( a - b ) ** 2 + ( 2 * c ) ** 2 ) / ( a + b + noise ** 2 ) ** 2 result = g.normalise(1.0..0.0) ** m * ( x ** 2 + y ** 2 ) result.normalise( 0xFF .. 0 ).save_ubyte ARGV[1]