mirror of
https://github.com/wassname/scikit-image.git
synced 2026-07-24 13:20:43 +08:00
pep8 math operators
This commit is contained in:
@@ -1072,10 +1072,10 @@ def lab2lch(lab):
|
||||
lch = _prepare_colorarray(lab).copy()
|
||||
|
||||
a, b = lch[..., 1], lch[..., 2]
|
||||
lch[..., 1], lch[..., 2] = np.sqrt(a**2 + b**2), np.arctan2(b, a)
|
||||
lch[..., 1], lch[..., 2] = np.sqrt(a ** 2 + b ** 2), np.arctan2(b, a)
|
||||
|
||||
H = lch[..., 2]
|
||||
H[H < 0] += 2*np.pi # (-pi, pi) -> (0, 2*pi)
|
||||
H[H < 0] += 2 * np.pi # (-pi, pi) -> (0, 2*pi)
|
||||
return lch
|
||||
|
||||
|
||||
@@ -1113,5 +1113,5 @@ def lch2lab(lch):
|
||||
lch = _prepare_colorarray(lch).copy()
|
||||
|
||||
c, h = lch[..., 1], lch[..., 2]
|
||||
lch[..., 1], lch[..., 2] = c*np.cos(h), c*np.sin(h)
|
||||
lch[..., 1], lch[..., 2] = c * np.cos(h), c * np.sin(h)
|
||||
return lch
|
||||
|
||||
+57
-57
@@ -25,7 +25,7 @@ from __future__ import division
|
||||
|
||||
import numpy as np
|
||||
|
||||
DEG = np.pi/180
|
||||
DEG = np.pi / 180
|
||||
|
||||
|
||||
def _unpack_last(x):
|
||||
@@ -35,11 +35,9 @@ def _unpack_last(x):
|
||||
|
||||
|
||||
def _arctan2pi(b, a):
|
||||
"""np.arctan2 mapped to (0, 2*pi)"""
|
||||
"""np.arctan2 mapped to (0, 2 * pi)"""
|
||||
ans = np.arctan2(b, a)
|
||||
ans += np.where(ans < 0, 2*np.pi, 0.)
|
||||
assert ans.max() <= 2*np.pi
|
||||
assert ans.min() >= 0.
|
||||
ans += np.where(ans < 0, 2 * np.pi, 0.)
|
||||
return ans
|
||||
|
||||
|
||||
@@ -65,7 +63,7 @@ def deltaE_cie76(lab1, lab2):
|
||||
"""
|
||||
l1, a1, b1 = _unpack_last(lab1)
|
||||
l2, a2, b2 = _unpack_last(lab2)
|
||||
return np.sqrt((l2-l1)**2 + (a2-a1)**2 + (b2-b1)**2)
|
||||
return np.sqrt((l2 - l1) ** 2 + (a2 - a1) ** 2 + (b2 - b1) ** 2)
|
||||
|
||||
|
||||
def deltaE_ciede94(lab1, lab2, kH=1, kC=1, kL=1, k1=0.045, k2=0.015):
|
||||
@@ -121,16 +119,19 @@ def deltaE_ciede94(lab1, lab2, kH=1, kC=1, kL=1, k1=0.045, k2=0.015):
|
||||
l2, a2, b2 = _unpack_last(lab2)
|
||||
|
||||
dl = l1 - l2
|
||||
c1 = np.sqrt(a1**2 + b1**2)
|
||||
c2 = np.sqrt(a2**2 + b2**2)
|
||||
c1 = np.sqrt(a1 ** 2 + b1 ** 2)
|
||||
c2 = np.sqrt(a2 ** 2 + b2 ** 2)
|
||||
dc = c1 - c2
|
||||
dh_ab = np.sqrt(deltaE_cie76(lab1, lab2)**2 - dl**2 - dc**2)
|
||||
dh_ab = np.sqrt(deltaE_cie76(lab1, lab2) ** 2 - dl ** 2 - dc ** 2)
|
||||
|
||||
SL = 1
|
||||
SC = 1 + k1*c1
|
||||
SH = 1 + k2*c1
|
||||
SC = 1 + k1 * c1
|
||||
SH = 1 + k2 * c1
|
||||
|
||||
ans = (dl/(kL*SL))**2 + (dc/(kC*SC))**2 + (dh_ab/(kH*SH))**2
|
||||
ans = ((dl / (kL * SL)) ** 2 +
|
||||
(dc / (kC * SC)) ** 2 +
|
||||
(dh_ab / (kH * SH)) ** 2
|
||||
)
|
||||
return np.sqrt(ans)
|
||||
|
||||
|
||||
@@ -172,21 +173,21 @@ def deltaE_ciede2000(lab1, lab2, kL=1, kC=1, kH=1):
|
||||
L1, a1, b1 = _unpack_last(lab1)
|
||||
L2, a2, b2 = _unpack_last(lab2)
|
||||
|
||||
c1 = np.sqrt(a1**2 + b1**2)
|
||||
c2 = np.sqrt(a2**2 + b2**2)
|
||||
cbar = 0.5*(c1 + c2)
|
||||
c7 = cbar**7
|
||||
G = 0.5 * (1 - np.sqrt(c7/(c7 + 25**7)))
|
||||
c1 = np.sqrt(a1 ** 2 + b1 ** 2)
|
||||
c2 = np.sqrt(a2 ** 2 + b2 ** 2)
|
||||
cbar = 0.5 * (c1 + c2)
|
||||
c7 = cbar ** 7
|
||||
G = 0.5 * (1 - np.sqrt(c7 / (c7 + 25 ** 7)))
|
||||
|
||||
dL_prime = L2 - L1
|
||||
Lbar = 0.5*(L1 + L2)
|
||||
Lbar = 0.5 * (L1 + L2)
|
||||
|
||||
a1_prime = a1 * (1 + G)
|
||||
a2_prime = a2 * (1 + G)
|
||||
|
||||
c1_prime = np.sqrt(a1_prime**2 + b1**2)
|
||||
c2_prime = np.sqrt(a2_prime**2 + b2**2)
|
||||
cbar_prime = 0.5*(c1_prime + c2_prime)
|
||||
c1_prime = np.sqrt(a1_prime ** 2 + b1 ** 2)
|
||||
c2_prime = np.sqrt(a2_prime ** 2 + b2 ** 2)
|
||||
cbar_prime = 0.5 * (c1_prime + c2_prime)
|
||||
dC_prime = c2_prime - c1_prime
|
||||
|
||||
h1_prime = _arctan2pi(b1, a1_prime)
|
||||
@@ -199,47 +200,46 @@ def deltaE_ciede2000(lab1, lab2, kL=1, kC=1, kH=1):
|
||||
mask2 = np.logical_and(-mask1, dh_prime > np.pi)
|
||||
mask3 = np.logical_and(-mask1, dh_prime < -np.pi)
|
||||
dh_prime = np.where(mask1, 0., dh_prime)
|
||||
dh_prime += np.where(mask2, 2*np.pi, 0)
|
||||
dh_prime -= np.where(mask3, 2*np.pi, 0)
|
||||
dh_prime += np.where(mask2, 2 * np.pi, 0)
|
||||
dh_prime -= np.where(mask3, 2 * np.pi, 0)
|
||||
|
||||
dH_prime = 2 * np.sqrt(cc) * np.sin(dh_prime/2)
|
||||
dH_prime = 2 * np.sqrt(cc) * np.sin(dh_prime / 2)
|
||||
|
||||
Hbar_prime = h1_prime + h2_prime
|
||||
mask0 = np.logical_and(np.abs(h1_prime - h2_prime) > np.pi, cc != 0.)
|
||||
mask1 = np.logical_and(mask0, Hbar_prime < 2*np.pi)
|
||||
mask2 = np.logical_and(mask0, Hbar_prime >= 2*np.pi)
|
||||
mask1 = np.logical_and(mask0, Hbar_prime < 2 * np.pi)
|
||||
mask2 = np.logical_and(mask0, Hbar_prime >= 2 * np.pi)
|
||||
|
||||
Hbar_prime += np.where(mask1, 2*np.pi, 0)
|
||||
Hbar_prime -= np.where(mask2, 2*np.pi, 0)
|
||||
Hbar_prime += np.where(mask1, 2 * np.pi, 0)
|
||||
Hbar_prime -= np.where(mask2, 2 * np.pi, 0)
|
||||
Hbar_prime *= np.where(cc == 0., 2, 1)
|
||||
Hbar_prime *= 0.5
|
||||
|
||||
deg = np.pi/180.
|
||||
T = (1 -
|
||||
0.17 * np.cos(Hbar_prime - 30*deg) +
|
||||
0.24 * np.cos(2*Hbar_prime) +
|
||||
0.32 * np.cos(3*Hbar_prime + 6*deg) -
|
||||
0.20 * np.cos(4*Hbar_prime - 63*deg)
|
||||
0.17 * np.cos(Hbar_prime - 30 * DEG) +
|
||||
0.24 * np.cos(2 * Hbar_prime) +
|
||||
0.32 * np.cos(3 * Hbar_prime + 6 * DEG) -
|
||||
0.20 * np.cos(4 * Hbar_prime - 63 * DEG)
|
||||
)
|
||||
dTheta = 30*deg * np.exp(-((Hbar_prime/deg - 275)/25)**2)
|
||||
c7 = cbar_prime**7
|
||||
Rc = 2 * np.sqrt(c7 / (c7 + 25**7))
|
||||
dTheta = 30 * DEG * np.exp(-((Hbar_prime / DEG - 275) / 25) ** 2)
|
||||
c7 = cbar_prime ** 7
|
||||
Rc = 2 * np.sqrt(c7 / (c7 + 25 ** 7))
|
||||
|
||||
term = (Lbar - 50)**2
|
||||
SL = 1 + 0.015*term/np.sqrt(20 + term)
|
||||
SC = 1 + 0.045*cbar_prime
|
||||
SH = 1 + 0.015*cbar_prime * T
|
||||
term = (Lbar - 50) ** 2
|
||||
SL = 1 + 0.015 * term / np.sqrt(20 + term)
|
||||
SC = 1 + 0.045 * cbar_prime
|
||||
SH = 1 + 0.015 * cbar_prime * T
|
||||
|
||||
RT = -np.sin(2*dTheta) * Rc
|
||||
RT = -np.sin(2 * dTheta) * Rc
|
||||
|
||||
l_term = dL_prime / (kL * SL)
|
||||
c_term = dC_prime / (kC * SC)
|
||||
h_term = dH_prime / (kH * SH)
|
||||
r_term = RT * c_term * h_term
|
||||
|
||||
dE2 = l_term**2
|
||||
dE2 += c_term**2
|
||||
dE2 += h_term**2
|
||||
dE2 = l_term ** 2
|
||||
dE2 += c_term ** 2
|
||||
dE2 += h_term ** 2
|
||||
dE2 += r_term
|
||||
return np.sqrt(dE2)
|
||||
|
||||
@@ -283,28 +283,28 @@ def deltaE_cmc(lab1, lab2, kL=1, kC=1):
|
||||
l1, a1, b1 = _unpack_last(lab1)
|
||||
l2, a2, b2 = _unpack_last(lab2)
|
||||
|
||||
c1 = np.sqrt(a1**2 + b1**2)
|
||||
c2 = np.sqrt(a2**2 + b2**2)
|
||||
c1 = np.sqrt(a1 ** 2 + b1 ** 2)
|
||||
c2 = np.sqrt(a2 ** 2 + b2 ** 2)
|
||||
dC = c1 - c2
|
||||
dl = l1 - l2
|
||||
dH = np.sqrt(deltaE_cie76(lab1, lab2)**2 - dl**2 - dC**2)
|
||||
dH = np.sqrt(deltaE_cie76(lab1, lab2) ** 2 - dl ** 2 - dC ** 2)
|
||||
|
||||
dL = l1 - l2
|
||||
|
||||
h1 = _arctan2pi(b1, a1)
|
||||
T = np.where(np.logical_and(h1 >= 164*DEG, h1 <= 345*DEG),
|
||||
0.56 + 0.2 * np.abs(np.cos(h1 + 168*DEG)),
|
||||
0.36 + 0.4 * np.abs(np.cos(h1 + 35*DEG))
|
||||
T = np.where(np.logical_and(h1 >= 164 * DEG, h1 <= 345 * DEG),
|
||||
0.56 + 0.2 * np.abs(np.cos(h1 + 168 * DEG)),
|
||||
0.36 + 0.4 * np.abs(np.cos(h1 + 35 * DEG))
|
||||
)
|
||||
c1_4 = c1**4
|
||||
c1_4 = c1 ** 4
|
||||
F = np.sqrt(c1_4 / (c1_4 + 1900))
|
||||
|
||||
SL = np.where(l1 < 16, 0.511, 0.040975*l1 / (1. + 0.01765*l1))
|
||||
SC = 0.638 + 0.0638 * c1 / (1. + 0.0131*c1)
|
||||
SH = SC * (F*T + 1 - F)
|
||||
SL = np.where(l1 < 16, 0.511, 0.040975 * l1 / (1. + 0.01765 * l1))
|
||||
SC = 0.638 + 0.0638 * c1 / (1. + 0.0131 * c1)
|
||||
SH = SC * (F * T + 1 - F)
|
||||
|
||||
dE2 = (dL / (kL*SL))**2
|
||||
dE2 += (dC/(kC*SC))**2
|
||||
dE2 += (dH/SH)**2
|
||||
dE2 = (dL / (kL * SL)) ** 2
|
||||
dE2 += (dC / (kC * SC)) ** 2
|
||||
dE2 += (dH / SH) ** 2
|
||||
|
||||
return np.sqrt(dE2)
|
||||
|
||||
Reference in New Issue
Block a user