bilegentile's picture
Upload folder using huggingface_hub
c19ca42 verified
raw
history blame contribute delete
1.9 kB
import math
import numpy as np
def horizontal_gradient(img: np.ndarray):
x = np.arange(img.shape[1])
p = x / (img.shape[1] - 1)
img[:, :] = p.reshape((1, -1))
def vertical_gradient(img: np.ndarray):
x = np.arange(img.shape[0])
p = x / (img.shape[0] - 1)
img[:, :] = p.reshape((-1, 1))
def diagonal_gradient(img: np.ndarray, angle: float, width: float):
center = np.array([img.shape[0], img.shape[1]], dtype=np.float32) / 2
direction = np.array([np.cos(angle), np.sin(angle)], dtype=np.float32)
start = center - direction * width / 2
pixels = np.array(
[[(r, c) for r in range(img.shape[0]) for c in range(img.shape[1])]]
)
projection = (pixels - start).dot(direction)
p = np.clip((projection / width).ravel(), 0, 1)
img[:] = p.reshape(img.shape)
def radial_gradient(
img: np.ndarray, inner_radius_percent: float = 0, outer_radius_percent: float = 1
):
inner_radius = inner_radius_percent * img.shape[1] / 2
outer_radius = outer_radius_percent * img.shape[1] / 2
center = np.array(img.shape[:2], dtype="float32") / 2
pixels = np.array(
[(r, c) for r in range(img.shape[0]) for c in range(img.shape[1])]
)
distance = np.sqrt(np.sum((pixels - center) ** 2, axis=1))
p = (distance - inner_radius) / (outer_radius - inner_radius)
img[:] = p.reshape(img.shape)
def conic_gradient(img: np.ndarray, rotation: float = 0):
if rotation > np.pi:
rotation -= 2 * np.pi
if rotation < -np.pi:
rotation += 2 * np.pi
center = np.array(img.shape[:2], dtype="float32") / 2
pixels = np.array(
[(r, c) for r in range(img.shape[0]) for c in range(img.shape[1])]
)
angles = np.arctan2(pixels[:, 0] - center[0], pixels[:, 1] - center[1]) + rotation
angles[angles < 0] += 2 * np.pi
p = angles / math.pi / 2
img[:] = p.reshape(img.shape)