|
|
|
@ -12,13 +12,13 @@ |
|
|
|
|
# See the License for the specific language governing permissions and |
|
|
|
|
# limitations under the License. |
|
|
|
|
|
|
|
|
|
from unittest import result |
|
|
|
|
import cv2 |
|
|
|
|
import numpy as np |
|
|
|
|
|
|
|
|
|
import shapely.ops |
|
|
|
|
from shapely.geometry import Polygon, MultiPolygon, GeometryCollection |
|
|
|
|
import copy |
|
|
|
|
from sklearn.decomposition import PCA |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def normalize(im, mean, std, min_value=[0, 0, 0], max_value=[255, 255, 255]): |
|
|
|
@ -198,12 +198,12 @@ def matching(im1, im2): |
|
|
|
|
""" Match two images, used change detection. (Just RGB) |
|
|
|
|
|
|
|
|
|
Args: |
|
|
|
|
im1 (np.ndarray): The image of time 1 |
|
|
|
|
im2 (np.ndarray): The image of time 2 |
|
|
|
|
im1 (np.ndarray): The image of time 1. |
|
|
|
|
im2 (np.ndarray): The image of time 2. |
|
|
|
|
|
|
|
|
|
Returns: |
|
|
|
|
np.ndarray: The image of time 1 after matched |
|
|
|
|
np.ndarray: The image of time 2 |
|
|
|
|
np.ndarray: The image of time 1 after matched. |
|
|
|
|
np.ndarray: The image of time 2. |
|
|
|
|
""" |
|
|
|
|
orb = cv2.AKAZE_create() |
|
|
|
|
kp1, des1 = orb.detectAndCompute(im1, None) |
|
|
|
@ -225,8 +225,11 @@ def de_haze(im, gamma=False): |
|
|
|
|
""" Priori defogging of dark channel. (Just RGB) |
|
|
|
|
|
|
|
|
|
Args: |
|
|
|
|
im (np.ndarray): Image. |
|
|
|
|
im (np.ndarray): The image. |
|
|
|
|
gamma (bool, optional): Use gamma correction or not. Defaults to False. |
|
|
|
|
|
|
|
|
|
Returns: |
|
|
|
|
np.ndarray: The image after defogged. |
|
|
|
|
""" |
|
|
|
|
def guided_filter(I, p, r, eps): |
|
|
|
|
m_I = cv2.boxFilter(I, -1, (r, r)) |
|
|
|
@ -266,3 +269,23 @@ def de_haze(im, gamma=False): |
|
|
|
|
if gamma: |
|
|
|
|
result = result ** (np.log(0.5) / np.log(result.mean())) |
|
|
|
|
return (result * 255).astype("uint8") |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def pca(im, dim=3, whiten=True): |
|
|
|
|
""" Dimensionality reduction of PCA. |
|
|
|
|
|
|
|
|
|
Args: |
|
|
|
|
im (np.ndarray): The image. |
|
|
|
|
dim (int, optional): Reserved dimensions. Defaults to 3. |
|
|
|
|
whiten (bool, optional): PCA whiten or not. Defaults to True. |
|
|
|
|
|
|
|
|
|
Returns: |
|
|
|
|
np.ndarray: The image after PCA. |
|
|
|
|
""" |
|
|
|
|
H, W, C = im.shape |
|
|
|
|
n_im = np.reshape(im, (-1, C)) |
|
|
|
|
pca = PCA(n_components=dim, whiten=whiten) |
|
|
|
|
im_pca = pca.fit_transform(n_im) |
|
|
|
|
result = np.reshape(im_pca, (H, W, dim)) |
|
|
|
|
result = np.clip(result, 0, 1) |
|
|
|
|
return (result * 255).astype("uint8") |