From: Max Value Date: Sat, 25 Oct 2025 00:26:11 +0000 (+0100) Subject: Changes for testing and cleanup X-Git-Url: https://git.ozva.co.uk/?a=commitdiff_plain;h=e2d27329b14bc1112ba0661eba76c9a9d2347941;p=rust_fft Changes for testing and cleanup --- diff --git a/src/correct.rs b/src/correct.rs index 6d04d48..45777b1 100644 --- a/src/correct.rs +++ b/src/correct.rs @@ -30,12 +30,6 @@ impl Correcter { let g_scale = g as f64 * self.scaler; let b_scale = b as f64 * self.scaler; - println!("scaler {}", self.scaler); - println!("strides {:?}", self.strides); - println!("r scale {}", r_scale); - println!("g scale {}", g_scale); - println!("b scale {}", b_scale); - let r_upper = r_scale.ceil(); let g_upper = g_scale.ceil(); let b_upper = b_scale.ceil(); @@ -43,22 +37,10 @@ impl Correcter { let g_lower = g_scale.floor(); let b_lower = b_scale.floor(); - println!("r upper {}", r_upper); - println!("g upper {}", g_upper); - println!("b upper {}", b_upper); - - println!("r lower {}", r_lower); - println!("g lower {}", g_lower); - println!("b lower {}", b_lower); - let r_remainder = r_scale.fract(); let g_remainder = g_scale.fract(); let b_remainder = b_scale.fract(); - println!("r remainder {}", r_remainder); - println!("g remainder {}", g_remainder); - println!("b remainder {}", b_remainder); - let i_upper = ( (r_upper * self.strides[0] as f64) + (g_upper * self.strides[1] as f64) + @@ -70,9 +52,6 @@ impl Correcter { (b_lower * self.strides[2] as f64) ) as usize; - println!("i upper {}", i_upper); - println!("i lower {}", i_lower); - let r_upper = self.lut[i_upper] as f64; let g_upper = self.lut[i_upper+1] as f64; let b_upper = self.lut[i_upper+2] as f64; @@ -80,14 +59,6 @@ impl Correcter { let g_lower = self.lut[i_lower+1] as f64; let b_lower = self.lut[i_lower+2] as f64; - println!("r upper real {}", r_upper); - println!("g upper real {}", g_upper); - println!("b upper real {}", b_upper); - - println!("r lower real {}", r_lower); - println!("g lower real {}", g_lower); - println!("b lower real {}", b_lower); - [ (((r_upper - r_lower) * r_remainder) + r_lower) as u8, (((g_upper - g_lower) * g_remainder) + g_lower) as u8, @@ -95,3 +66,15 @@ impl Correcter { ] } } + +pub fn _cast (r: u8, g: u8, b: u8) -> [u8; 3] { + let mut r = r as f64 / 255.; + let mut g = g as f64 / 255.; + let mut b = b as f64 / 255.; + + r = r.powi(2) * 255.; + g = g.powi(2) * 255.; + b = b.powi(2) * 255.; + + [r as u8, g as u8, b as u8] +} diff --git a/src/main.rs b/src/main.rs index 442b3fe..504b6e6 100644 --- a/src/main.rs +++ b/src/main.rs @@ -14,6 +14,7 @@ use image::ImageReader; mod correct; use crate::correct::Correcter; +use crate::correct::_cast; const WINDOW_SIZE: usize = 128; const CHUNK_SIZE: usize = 72; @@ -66,7 +67,7 @@ impl ImageArray { corrector: Correcter::new("./cube.npy"), camera_buffer: vec![0u8; IMAGE_AREA], - camera: Camera::new("/dev/video2").unwrap(), + camera: Camera::new("/dev/v4l/by-id/usb-MACROSILICON_USB_Video-video-index0").unwrap(), // should be video2 chunks: SPECTOGRAM_AREA }; @@ -85,16 +86,16 @@ impl ImageArray { unsafe{ApplyHomography (self.camera_buffer.as_ptr() as usize, self.data.as_ptr() as usize, self.homography.as_ptr() as usize);} - for i in 0..self.camera_buffer.len()/3 { - let mut r = self.camera_buffer[i*3]; - let mut g = self.camera_buffer[(i*3)+1]; - let mut b = self.camera_buffer[(i*3)+3]; + for i in 0..(self.data.len()-1)/3 { + let mut r = self.data[i*3]; + let mut g = self.data[(i*3)+1]; + let mut b = self.data[(i*3)+3]; [r, g, b] = self.corrector.correct(r, g, b); - self.camera_buffer[i*3] = r; - self.camera_buffer[(i*3)+1] = g; - self.camera_buffer[(i*3)+3] = b; + self.data[i*3] = r; + self.data[(i*3)+1] = g; + self.data[(i*3)+3] = b; } } @@ -102,6 +103,7 @@ impl ImageArray { // rscam gives and empty image if its not prompted a couple times for _i in 0..10 { self.camera_buffer = self.camera.capture().unwrap()[..].try_into().expect("Image is wrong size"); //delete assignment + } // enter unsafe and get the homography array @@ -271,7 +273,7 @@ fn main () -> Result<(), Box> { image_array.calibrate(); // open audio file - let mut reader = hound::WavReader::open("/home/will/Music/Adducci - Around the Horn.wav").unwrap(); + let mut reader = hound::WavReader::open("/home/will/Downloads/asq.wav").unwrap(); let file_rate = reader.spec().sample_rate; // setup audio output and build output stream