try to do temperature change, wrongly
This commit is contained in:
parent
fe56b9f346
commit
57a2c3197e
|
@ -20,10 +20,10 @@ fn get_packets_without_udp_header() -> anyhow::Result<(Vec<Vec<u8>>, usize, usiz
|
|||
i += 1;
|
||||
size += offset;
|
||||
match packet {
|
||||
PcapBlockOwned::Legacy(block) => {
|
||||
PcapBlockOwned::Legacy(_block) => {
|
||||
println!("dunno");
|
||||
}
|
||||
PcapBlockOwned::LegacyHeader(block) => {
|
||||
PcapBlockOwned::LegacyHeader(_block) => {
|
||||
println!("dunnoheader");
|
||||
}
|
||||
PcapBlockOwned::NG(block) => {
|
||||
|
@ -89,6 +89,7 @@ impl Header {
|
|||
})
|
||||
}
|
||||
|
||||
#[allow(dead_code)]
|
||||
fn read_via_cast(data: &[u8]) -> anyhow::Result<&Self> {
|
||||
let size = std::mem::size_of::<Self>();
|
||||
if data.len() < size {
|
||||
|
@ -110,7 +111,7 @@ fn main() -> anyhow::Result<()> {
|
|||
let mut parts = vec![];
|
||||
for packet in data.iter() {
|
||||
if let Ok(ref mut dump) = dump {
|
||||
dump.write_all(&packet);
|
||||
dump.write_all(&packet)?;
|
||||
}
|
||||
let hdr = Header::read(packet)?;
|
||||
let data = packet[HDR_SIZE..].to_vec();
|
||||
|
@ -121,6 +122,7 @@ fn main() -> anyhow::Result<()> {
|
|||
parts.push(data);
|
||||
}
|
||||
println!("found {} frames", frames.len());
|
||||
println!("writing raw pngs");
|
||||
let pb = ProgressBar::new(frames.len() as u64);
|
||||
for (i, frame) in frames.iter().enumerate().progress_with(pb) {
|
||||
let name = format!("{:03}.png", i);
|
||||
|
@ -131,7 +133,35 @@ fn main() -> anyhow::Result<()> {
|
|||
encoder.set_color(png::ColorType::Grayscale);
|
||||
encoder.set_depth(png::BitDepth::Sixteen);
|
||||
let mut writer = encoder.write_header()?;
|
||||
writer.write_image_data(&frame);
|
||||
writer.write_image_data(&frame)?;
|
||||
}
|
||||
|
||||
println!("writing calibrated (value is temperature)");
|
||||
let pb = ProgressBar::new(frames.len() as u64);
|
||||
for (i, frame) in frames.iter().enumerate().progress_with(pb) {
|
||||
let name = format!("temp_{:03}.png", i);
|
||||
let path = Path::new(&name);
|
||||
let file = File::create(path).unwrap();
|
||||
let ref mut w = BufWriter::new(file);
|
||||
let mut encoder = png::Encoder::new(w, 288, 384);
|
||||
encoder.set_color(png::ColorType::Grayscale);
|
||||
encoder.set_depth(png::BitDepth::Eight);
|
||||
let mut writer = encoder.write_header()?;
|
||||
let p = frame.as_ptr();
|
||||
let samples: &[u16] = unsafe { std::slice::from_raw_parts(p.cast(), frame.len() / 2) };
|
||||
let frame = samples
|
||||
.iter()
|
||||
.copied()
|
||||
.map(|x| {
|
||||
let x: f64 = x.into();
|
||||
((-1.665884e-08) * x.powf(4.)
|
||||
+ (1.347094e-05) * x.powf(3.)
|
||||
+ (-4.396264e-03) * x.powf(2.)
|
||||
+ (9.506939e-01) * x
|
||||
+ (-6.353247e+01)) as u8
|
||||
})
|
||||
.collect::<Vec<u8>>();
|
||||
writer.write_image_data(&frame)?;
|
||||
}
|
||||
|
||||
Ok(())
|
||||
|
|
Loading…
Reference in New Issue
Block a user