add cutoff grayscale
This commit is contained in:
parent
2347158093
commit
0af76ed532
|
@ -11,6 +11,8 @@ struct Args {
|
||||||
temperature: bool,
|
temperature: bool,
|
||||||
#[arg(short, long, default_value = "/dev/video0")]
|
#[arg(short, long, default_value = "/dev/video0")]
|
||||||
device: String,
|
device: String,
|
||||||
|
#[arg(short, long)]
|
||||||
|
red_cutoff: Option<f64>,
|
||||||
}
|
}
|
||||||
|
|
||||||
fn pixel_to_celcius(x: u16) -> u16 {
|
fn pixel_to_celcius(x: u16) -> u16 {
|
||||||
|
@ -96,6 +98,13 @@ fn main() -> anyhow::Result<()> {
|
||||||
let mut pixel = u16::from_be_bytes([frame[i * 2], frame[i * 2 + 1]]);
|
let mut pixel = u16::from_be_bytes([frame[i * 2], frame[i * 2 + 1]]);
|
||||||
if args.temperature {
|
if args.temperature {
|
||||||
pixel = pixel_to_celcius(pixel);
|
pixel = pixel_to_celcius(pixel);
|
||||||
|
if let Some(cutoff) = args.red_cutoff {
|
||||||
|
pixel = if pixel > (256.0 * cutoff) as u16 {
|
||||||
|
50000
|
||||||
|
} else {
|
||||||
|
0
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
let pixel_swapped = pixel.to_le_bytes();
|
let pixel_swapped = pixel.to_le_bytes();
|
||||||
swapped[i * 2..i * 2 + 2].copy_from_slice(&pixel_swapped);
|
swapped[i * 2..i * 2 + 2].copy_from_slice(&pixel_swapped);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user