- Paper: Color Transfer between Images by Erik Reinhard, Michael Ashikhmin, Bruce Gooch and Peter Shirley.
- This is the re-implementation based on: https://github.com/chia56028/Color-Transfer-between-Images.
- The transfer process performed in numpy array instead of looping over pixel to improve performance.
- Support on pytorch and numpy.
- numpy
- opencv-python>=4.7.0.72
- torch>=1.13.0
pip install color_transfer_py
import cv2
from color_transfer import color_transfer
src = cv2.imread("examples/1/src.jpeg")
target = cv2.imread("examples/1/target.png")
out = color_transfer(src, target)
cv2.imwrite("examples/1/output.jpeg", out)
import torch
from color_transfer import color_transfer_pytorch
# In pytorch, you can run multiple images at once
# but images must have the same size
src = torch.rand(4, 3, 224, 224)
target = torch.rand(4, 3, 224, 224)
outs = color_transfer_pytorch(src, target)
# Outs shape: (4, 3, 224, 224), output range is [0, 1]
Source | Target | Output |
---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
- The benchmark results can be reproduce by running
python3 benchmark.py
This implementation | chia56028 implementation |
---|---|
0.02 second | 1.337 second |