Skip to content

Commit 6ac5e26

Browse files
authored
Apply clippy fix (#61)
* Apply clippy fix * Apply more fixes and remove warnings
1 parent bf7c834 commit 6ac5e26

File tree

12 files changed

+51
-72
lines changed

12 files changed

+51
-72
lines changed

examples/basic.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@ use ndarray_vision::core::*;
33
use ndarray_vision::format::netpbm::*;
44
use ndarray_vision::format::*;
55
use ndarray_vision::processing::*;
6-
use std::env::current_exe;
6+
77
use std::path::{Path, PathBuf};
88

99
fn main() {
1010
let root = Path::new(env!("CARGO_MANIFEST_DIR"));
11-
let mut cameraman = root.clone().join("images/cameraman.ppm");
11+
let cameraman = root.clone().join("images/cameraman.ppm");
1212
println!("{:?}", cameraman);
1313

1414
let decoder = PpmDecoder::default();
@@ -21,7 +21,7 @@ fn main() {
2121

2222
let mut image: Image<f64, _> = image.into_type();
2323

24-
let _ = image
24+
image
2525
.conv2d_inplace(boxkern.view())
2626
.expect("Poorly sized kernel");
2727
// There's no u8: From<f64> so I've done this to hack things

examples/transforms.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ fn main() {
4242
// save
4343
let path = Path::new("transformed_cameraman.png");
4444
let file = File::create(path).expect("Couldn't create output file");
45-
let ref mut w = BufWriter::new(file);
45+
let w = &mut BufWriter::new(file);
4646

4747
let mut encoder = png::Encoder::new(w, transformed.cols() as u32, transformed.rows() as u32);
4848
encoder.set_color(png::ColorType::RGB);

src/core/colour_models.rs

+8-8
Original file line numberDiff line numberDiff line change
@@ -90,8 +90,8 @@ fn rescale_pixel<T>(x: f64) -> T
9090
where
9191
T: FromPrimitive + Num + NumCast + PixelBound + Display,
9292
{
93-
let tmax = T::max_pixel().to_f64().unwrap_or_else(|| 0.0f64);
94-
let tmin = T::min_pixel().to_f64().unwrap_or_else(|| 0.0f64);
93+
let tmax = T::max_pixel().to_f64().unwrap_or(0.0f64);
94+
let tmin = T::min_pixel().to_f64().unwrap_or(0.0f64);
9595

9696
let x = x * (tmax - tmin) + tmin;
9797

@@ -159,17 +159,17 @@ where
159159
let x = c * (1.0f64 - ((h_deg / 60.0f64) % 2.0f64 - 1.0f64).abs());
160160
let m = v_norm - c;
161161

162-
let rgb = if 0.0f64 <= h_deg && h_deg < 60.0f64 {
162+
let rgb = if (0.0f64..60.0f64).contains(&h_deg) {
163163
(c, x, 0.0f64)
164-
} else if 60.0f64 <= h_deg && h_deg < 120.0f64 {
164+
} else if (60.0f64..120.0f64).contains(&h_deg) {
165165
(x, c, 0.0f64)
166-
} else if 120.0f64 <= h_deg && h_deg < 180.0f64 {
166+
} else if (120.0f64..180.0f64).contains(&h_deg) {
167167
(0.0f64, c, x)
168-
} else if 180.0f64 <= h_deg && h_deg < 240.0f64 {
168+
} else if (180.0f64..240.0f64).contains(&h_deg) {
169169
(0.0f64, x, c)
170-
} else if 240.0f64 <= h_deg && h_deg < 300.0f64 {
170+
} else if (240.0f64..300.0f64).contains(&h_deg) {
171171
(x, 0.0f64, c)
172-
} else if 300.0f64 <= h_deg && h_deg < 360.0f64 {
172+
} else if (300.0f64..360.0f64).contains(&h_deg) {
173173
(c, 0.0f64, x)
174174
} else {
175175
(0.0f64, 0.0f64, 0.0f64)

src/core/image.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ where
4343
let scaled = normalise_pixel_value(*x)
4444
* (T2::max_pixel() - T2::min_pixel())
4545
.to_f64()
46-
.unwrap_or_else(|| 0.0f64);
46+
.unwrap_or(0.0f64);
4747
T2::from_f64(scaled).unwrap_or_else(T2::zero) + T2::min_pixel()
4848
};
4949
let data = self.data.map(rescale);
@@ -204,8 +204,8 @@ where
204204
let numerator = (t + T::min_pixel()).to_f64();
205205
let denominator = (T::max_pixel() - T::min_pixel()).to_f64();
206206

207-
let numerator = numerator.unwrap_or_else(|| 0.0f64);
208-
let denominator = denominator.unwrap_or_else(|| 1.0f64);
207+
let numerator = numerator.unwrap_or(0.0f64);
208+
let denominator = denominator.unwrap_or(1.0f64);
209209

210210
numerator / denominator
211211
}

src/format/netpbm.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ impl PpmEncoder {
100100
U: Data<Elem = T>,
101101
T: Copy + Clone + Num + NumAssignOps + NumCast + PartialOrd + Display + PixelBound,
102102
{
103-
let max_val = Self::get_max_value(image).unwrap_or_else(|| 255);
103+
let max_val = Self::get_max_value(image).unwrap_or(255);
104104

105105
let mut result = self
106106
.generate_header(image.rows(), image.cols(), max_val)

src/processing/canny.rs

+11-4
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ where
102102
let mut dir = rotations[[i as usize, j, 0]]
103103
.to_degrees()
104104
.to_f64()
105-
.unwrap_or_else(|| 0.0);
105+
.unwrap_or(0.0);
106106

107107
let j = j as isize;
108108
if dir >= 180.0 {
@@ -197,6 +197,15 @@ where
197197
result
198198
}
199199

200+
impl<T> Default for CannyBuilder<T>
201+
where
202+
T: Copy + Clone + FromPrimitive + Real + Num,
203+
{
204+
fn default() -> Self {
205+
Self::new()
206+
}
207+
}
208+
200209
impl<T> CannyBuilder<T>
201210
where
202211
T: Copy + Clone + FromPrimitive + Real + Num,
@@ -267,9 +276,7 @@ where
267276
None => T::from_f64(0.7).unwrap(),
268277
};
269278
if t2 < t1 {
270-
let temp = t1;
271-
t1 = t2;
272-
t2 = temp;
279+
std::mem::swap(&mut t1, &mut t2);
273280
}
274281
CannyParameters { blur, t1, t2 }
275282
}

src/processing/conv.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -269,7 +269,7 @@ mod tests {
269269
}
270270

271271
#[test]
272-
#[cfg_attr(rustfmt, rustfmt_skip)]
272+
#[rustfmt::skip]
273273
fn basic_conv() {
274274
let input_pixels = vec![
275275
1, 1, 1, 0, 0,
@@ -300,7 +300,7 @@ mod tests {
300300
}
301301

302302
#[test]
303-
#[cfg_attr(rustfmt, rustfmt_skip)]
303+
#[rustfmt::skip]
304304
fn basic_conv_inplace() {
305305
let input_pixels = vec![
306306
1, 1, 1, 0, 0,

src/processing/filter.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,9 @@ where
3737
Zip::indexed(self.windows(region)).for_each(|(i, j, k), window| {
3838
let mut flat_window = Array::from_iter(window.iter()).mapv(|x| *x);
3939
if let Ok(v) = flat_window.quantile_mut(n64(0.5f64), &Linear {}) {
40-
result
41-
.get_mut([i + r_offset, j + c_offset, k])
42-
.map(|r| *r = v);
40+
if let Some(r) = result.get_mut([i + r_offset, j + c_offset, k]) {
41+
*r = v;
42+
}
4343
}
4444
});
4545
result

src/processing/kernels.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -75,14 +75,14 @@ where
7575
let res = match p {
7676
LaplaceType::Standard => {
7777
let m_1 = -T::one();
78-
let p_4 = T::from_u8(4).ok_or_else(|| Error::NumericError)?;
78+
let p_4 = T::from_u8(4).ok_or(Error::NumericError)?;
7979
let z = T::zero();
8080

8181
arr2(&[[z, m_1, z], [m_1, p_4, m_1], [z, m_1, z]])
8282
}
8383
LaplaceType::Diagonal => {
8484
let m_1 = -T::one();
85-
let p_8 = T::from_u8(8).ok_or_else(|| Error::NumericError)?;
85+
let p_8 = T::from_u8(8).ok_or(Error::NumericError)?;
8686

8787
arr2(&[[m_1, m_1, m_1], [m_1, p_8, m_1], [m_1, m_1, m_1]])
8888
}
@@ -219,7 +219,7 @@ where
219219

220220
/// Build a fixed size kernel with the given parameters
221221
fn build_with_params(p: Self::Params) -> Result<Array3<T>, Error> {
222-
let two = T::from_i8(2).ok_or_else(|| Error::NumericError)?;
222+
let two = T::from_i8(2).ok_or(Error::NumericError)?;
223223
// Gets the gradient along the horizontal axis
224224
#[rustfmt::skip]
225225
let horz_sobel = arr2(&[

src/processing/threshold.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -147,8 +147,8 @@ where
147147
sum_intensity += (index as f64) * (*count).to_f64().unwrap();
148148
}
149149
for (index, count) in counts.indexed_iter() {
150-
weight_b = weight_b + count.to_f64().unwrap();
151-
sum_b = sum_b + (index as f64) * count.to_f64().unwrap();
150+
weight_b += count.to_f64().unwrap();
151+
sum_b += (index as f64) * count.to_f64().unwrap();
152152
let weight_f = total - weight_b;
153153
if (weight_b > 0.0) && (weight_f > 0.0) {
154154
let mean_f = (sum_intensity - sum_b) / weight_f;
@@ -162,7 +162,7 @@ where
162162
}
163163
}
164164
}
165-
threshold = level as f64 / scale_factor;
165+
threshold = level / scale_factor;
166166
}
167167
Ok(threshold)
168168
}

src/transform/affine.rs

+6-7
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,18 @@ use ndarray_linalg::Inverse;
44

55
/// converts a matrix into an equivalent `AffineTransform`
66
pub fn transform_from_2dmatrix(in_array: Array2<f64>) -> AffineTransform {
7-
let transform = match in_array.inv() {
7+
match in_array.inv() {
88
Ok(inv) => AffineTransform {
9-
matrix2d_transform: in_array.clone(),
9+
matrix2d_transform: in_array,
1010
matrix2d_transform_inverse: inv,
1111
inverse_exists: true,
1212
},
13-
Err(e) => AffineTransform {
14-
matrix2d_transform: in_array.clone(),
13+
Err(_e) => AffineTransform {
14+
matrix2d_transform: in_array,
1515
matrix2d_transform_inverse: Array2::zeros((2, 2)),
1616
inverse_exists: false,
1717
},
18-
};
19-
return transform;
18+
}
2019
}
2120

2221
/// a linear transform of an image represented by either size 2x2
@@ -60,7 +59,7 @@ impl Transform for AffineTransform {
6059
}
6160

6261
fn inverse_exists(&self) -> bool {
63-
return self.inverse_exists;
62+
self.inverse_exists
6463
}
6564
}
6665

src/transform/mod.rs

+7-34
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
use crate::core::{ColourModel, Image, ImageBase};
2-
use ndarray::{array, prelude::*, s, Data};
3-
use ndarray_linalg::*;
2+
use ndarray::{prelude::*, s, Data};
43
use num_traits::{Num, NumAssignOps};
5-
use std::cmp::{max, min};
64
use std::fmt::Display;
75

86
pub mod affine;
@@ -18,9 +16,9 @@ impl std::error::Error for TransformError {}
1816
impl Display for TransformError {
1917
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2018
match self {
21-
TransformError::InvalidTransform => return write!(f, "invalid transform"),
19+
TransformError::InvalidTransform => write!(f, "invalid transform"),
2220
TransformError::NonInvertibleTransform => {
23-
return write!(
21+
write!(
2422
f,
2523
"Non Invertible Transform, Forward transform not yet implemented "
2624
)
@@ -46,17 +44,16 @@ pub struct ComposedTransform<T: Transform> {
4644

4745
impl<T: Transform> Transform for ComposedTransform<T> {
4846
fn apply(&self, p: (f64, f64)) -> (f64, f64) {
49-
return self.transform2.apply(self.transform1.apply(p));
47+
self.transform2.apply(self.transform1.apply(p))
5048
}
5149

5250
fn apply_inverse(&self, p: (f64, f64)) -> (f64, f64) {
53-
return self
54-
.transform1
55-
.apply_inverse(self.transform2.apply_inverse(p));
51+
self.transform1
52+
.apply_inverse(self.transform2.apply_inverse(p))
5653
}
5754

5855
fn inverse_exists(&self) -> bool {
59-
return self.transform1.inverse_exists() && self.transform2.inverse_exists();
56+
self.transform1.inverse_exists() && self.transform2.inverse_exists()
6057
}
6158
}
6259

@@ -85,30 +82,6 @@ struct Rect {
8582
h: usize,
8683
}
8784

88-
fn bounding_box<T: Transform>(dims: (f64, f64), transform: T) -> Rect {
89-
let tl = transform.apply((0.0, 0.0));
90-
let tr = transform.apply((0.0, dims.1));
91-
let br = transform.apply(dims);
92-
let bl = transform.apply((dims.0, 0.0));
93-
94-
let tl = (tl.0.round() as isize, tl.1.round() as isize);
95-
let tr = (tr.0.round() as isize, tr.1.round() as isize);
96-
let br = (br.0.round() as isize, br.1.round() as isize);
97-
let bl = (bl.0.round() as isize, bl.1.round() as isize);
98-
99-
let leftmost = min(min(tl.0, tr.0), min(br.0, bl.0));
100-
let topmost = min(min(tl.1, tr.1), min(br.1, bl.1));
101-
let rightmost = max(max(tl.0, tr.0), max(br.0, bl.0));
102-
let bottommost = max(max(tl.1, tr.1), max(br.1, bl.1));
103-
104-
Rect {
105-
x: leftmost,
106-
y: topmost,
107-
w: (rightmost - leftmost) as usize,
108-
h: (bottommost - topmost) as usize,
109-
}
110-
}
111-
11285
impl<T, U, V> TransformExt<V> for ArrayBase<U, Ix3>
11386
where
11487
T: Copy + Clone + Num + NumAssignOps,

0 commit comments

Comments
 (0)