如何将基于cv2的超快速颜色迁移Python算法改写为Julia语言实现
Julia实现cv2核心功能对应方案
你需要的两个OpenCV功能在Julia生态中都有成熟替代方案,依赖Images、Colors、ImageCore三个常用图像处理包即可实现,安装方式为在Julia REPL中按]进入包管理模式后执行:add Images Colors ImageCore
1. 替代cv2.cvtColor颜色空间转换
cv2.cvtColor的核心功能可通过Colors.jl的convert方法实现,常见转换的对应写法如下:
- 若你处理的是OpenCV默认返回的BGR格式数组,转RGB格式的写法:
# img_bgr维度为(高, 宽, 3),BGR通道顺序 img_rgb = img_bgr[:, :, end:-1:1] - RGB转LAB颜色空间(对应
cv2.COLOR_RGB2LAB):using Colors img_lab = convert.(Lab, img_rgb) - 其他常用颜色空间转换同理,比如RGB转HSV写为
convert.(HSV, img_rgb),RGB转灰度图写为convert.(Gray, img_rgb)即可。
2. 替代cv2.split拆分图像通道
cv2.split将多通道图像拆分为独立单通道矩阵的功能,可通过ImageCore.jl的channelview方法实现:
using ImageCore # 输入img为多通道图像,比如上一步得到的LAB图像 channels = channelview(img_lab) # 输出channels维度为(通道数, 高度, 宽度),按顺序取对应通道即可 l_channel = channels[1, :, :] a_channel = channels[2, :, :] b_channel = channels[3, :, :]
完成上述两步转换后,你就可以直接对应原Python版本的超快速颜色迁移算法逻辑,完成均值、标准差匹配的后续计算即可。
内容的提问来源于stack exchange,提问作者Thiago Alexandre
相关产品推荐
相关产品推荐

