]> OzVa Git service - rust_fft/commitdiff
Changes for testing and cleanup production
authorMax Value <greenwoodw50@gmail.com>
Sat, 25 Oct 2025 00:26:11 +0000 (01:26 +0100)
committerMax Value <greenwoodw50@gmail.com>
Sat, 25 Oct 2025 00:26:11 +0000 (01:26 +0100)
src/correct.rs
src/main.rs

index 6d04d48dc122a3eacb5c1ab11851ef61e6ab5f16..45777b1c1dde7b018f24bafd63ddf62d1bac95a8 100644 (file)
@@ -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]
+}
index 442b3fe6f6da68f09caf0b19765a5fd280f3ebc4..504b6e6ab45646d9234c544dbda099667694a146 100644 (file)
@@ -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<dyn std::error::Error>> {
        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