Skip to content

Commit 96455c0

Browse files
committed
refactor: using opencv for faster convolution
1 parent f8e24ca commit 96455c0

File tree

3 files changed

+8
-4
lines changed

3 files changed

+8
-4
lines changed

detectree/image_descriptor.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
"""Compute image descriptors."""
2+
import cv2
23
import numpy as np
34
from PIL import Image
4-
from scipy import ndimage as ndi
55
from skimage import color
66
from skimage.util import shape
77
from sklearn import preprocessing
@@ -60,7 +60,7 @@ def compute_image_descriptor(img_rgb, kernels, response_bins_per_axis, num_color
6060
)
6161

6262
for i, kernel in enumerate(kernels):
63-
filter_response = ndi.convolve(img_gray, kernel)
63+
filter_response = cv2.filter2D(img_gray, ddepth=-1, kernel=kernel)
6464
response_bins = shape.view_as_blocks(filter_response, block_shape)
6565
bin_sum = response_bins.sum(axis=(2, 3)).flatten()
6666
gist_descr[i * num_blocks : (i + 1) * num_blocks] = bin_sum

detectree/pixel_features.py

+5-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
"""Build pixel features."""
2-
32
import glob
43
from os import path
54

5+
import cv2
66
import dask
77
import numpy as np
88
from dask import diagnostics
@@ -180,7 +180,10 @@ def build_features_from_arr(self, img_rgb):
180180
# theta = orientation / num_orientations * np.pi
181181
theta = orientation * 180 / self.num_orientations
182182
oriented_kernel_arr = ndi.interpolation.rotate(base_kernel_arr, theta)
183-
img_filtered = ndi.convolve(img_lab_l, oriented_kernel_arr)
183+
# img_filtered = ndi.convolve(img_lab_l, oriented_kernel_arr)
184+
img_filtered = cv2.filter2D(
185+
img_lab_l, ddepth=-1, kernel=oriented_kernel_arr
186+
)
184187
img_filtered_vec = img_filtered.flatten()
185188
X[
186189
:, self.num_color_features + i * self.num_orientations + j

pyproject.toml

+1
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ dependencies = [
2727
"joblib",
2828
"laspy >= 2.0.0",
2929
"numpy >= 1.15",
30+
"opencv-python >= 4.0.0",
3031
"pandas >= 0.23",
3132
"pymaxflow >= 1.0.0",
3233
"rasterio >= 1.0.0",

0 commit comments

Comments
 (0)