better dct maybe

This commit is contained in:
2024-05-04 23:26:13 +02:00
parent 401d612259
commit c50fb4d785
+12 -12
View File
@@ -51,24 +51,24 @@ impl Descriptor for DCT {
fn describe(&self, img: image::DynamicImage) -> u64 { fn describe(&self, img: image::DynamicImage) -> u64 {
let mut dct_values: [f64; 64] = [0.0; 64]; let mut dct_values: [f64; 64] = [0.0; 64];
let img = self.resize(img); let img = self.resize(img);
let mut _total_sum: f64 = 0.0; for v in 0..7 {
for u in 0..7 {
for j in 0..7 { let k = (u*8)+v;
for i in 0..7 { let v: f64 = v as f64;
let u: f64 = u as f64;
let mut sum: f64 = 0.0; let mut sum: f64 = 0.0;
let k = (i*8)+j;
for (x, y, pix) in img.pixels() { for (x, y, pix) in img.pixels() {
let n: f64 = ((y*8)+x).into(); let x: f64 = 1.0 + 2.0 * x as f64;
let pixel: i16 = pix[0] as i16 - 127; let y: f64 = 1.0 + 2.0 * y as f64;
sum += pixel as f64 * (PI/64.0 * (n + 0.5) * k as f64).cos(); let pixel = (pix[0] as i16 - 127) as f64;
sum +=
pixel *
(x*u*PI/16.0).cos() *
(y*v*PI/16.0).cos()
} }
dct_values[k] = sum; dct_values[k] = sum;
_total_sum += sum;
//println!("{sum}");
} }
} }
_total_sum /= 64.0;
let mut mask: u64 = 0; let mut mask: u64 = 0;
for dct in dct_values { for dct in dct_values {
if dct > 0.0 { if dct > 0.0 {