Corner strength by Yang et al.

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

See also

#!/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]
Close