对大型图像进行着色和重新着色

colorizexl的Python项目详细描述


ColorizeXL公司

以下paper的Python实现,作者是Anat Levin,Dani Lischinski,Yair Weiss,pupublished in SIGGRAPH04。在

我们已经调整了他们的技术,使其适合大图像,通过使用带注释的重叠补丁。在

安装:

pip install colorizexl

使用

黑白图像的着色

在使用软件包之前,必须设置以下各项:

  • 原始黑白图像
  • 注释彩色图像(请查看纸张中的详细信息)

彩色图像的再分类

在使用软件包之前,必须设置以下各项:

  • 原色图像
  • 注释图片(请检查纸张上的细节):白色表示颜色不变,不同颜色表示您想要重新着色

命令行

从命令行调用colorizexl.py,为图像着色或重新着色。在

python colorizexl.py --annotated=<path_to_annotated_image> --grayscale=<path_to_image_to_(re)colorize> --output=<path_to_(re)colorized_image> --recolorize=True/False

Python代码

from colorizexl import ColorizeXL

colorizer = ColorizeXL(
        input_grayscale_name, input_annotation_name, recolorize=False
    )

output = colorizer.colorize(step_size=patch_size, overlap=overlap, n=neighbour)

定制

Python可以选择微调以下参数:

  • step_size(默认值为100),定义方形面片的大小
  • overlap(默认值为2),定义修补程序的重叠
  • n(默认值为10),定义圆中邻居的半径以计算颜色

包装组织

colorizexl公司

包含ColorizeXL类,该类是(重新)着色的引擎。 其功能如下:

  • \{colorize:将以一个image和一个annotation作为输入,并对图像进行着色;它将返回一个彩色图像
  • colorize:该算法的主要入口点,该方法将初始图像分割成小块,并将其发送到\ucolorize。它还将处理重叠,以确保着色区域之间的平滑过渡
  • colorize_no_upatch:包装器对于uu colorize方法,此函数是算法的初始实现,速度很慢,对于大图像将崩溃

笔记本电脑

包含用于实验的笔记本:

  • CS445\u用法:为图像着色和重新着色的示例代码(提供了来自原始纸张的示例图像);可以看到示例图像的输出here
  • CS445}master:我们的初始着色实验
  • CS445_patch_sort:对要重新存储的补丁进行智能排序的实验

测试

包含用于微调和评估包的测试代码。在

  • test_hyperparameters:在超参数(patch size,overlap and neighbors)上循环计算MSE(均方误差)、SSIM(结构相似性)和PSNR(峰值信噪比);从这些参数中,我们主要依赖于MSE;它还为每个组合保存一个图像,允许手动选择最令人愉悦的视觉效果
  • test_timing:将大图像缩小0.1到1.0倍(步骤0.1),并测量计算所需的时间(请注意,缩小尺寸产生的图像不一定是高质量的);我们代码的执行时间与要重定颜色的像素数成线性关系
  • test_timing_no_patch:与test_timing相似,但使用一次性着色;此原始方法表示每像素要着色的时间呈指数级增长

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java从Dropwizard中的Minio检索文件时,GET请求中的超时是如何处理的?   带Hibernate的java Jackson用于序列化以避免枚举   Raspberry Pi上的java Jave分段错误   java在屏幕旋转时不保存当前片段和数据   java War文件未在Heroku上正确部署   如何使用Java处理Selenium webdriver中的促销广告或cookie   java处理“用法:PApplet[options]<classname>[sketch args]”   java文本文件错误扫描程序   运行第一个JavaFX模块化程序时出现java异常   java将fileoutputstream转换为字符串   如何调试gstreamerjava?   java Spring RestTemplate ResponseBody类是什么样的   如何将JSON数组转换为Java列表。我在用斯文森   javascript在显示div按钮后进入新页面