微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将灰度图像转换为具有可定义阈值的1位黑/白,保持透明度?

如何解决将灰度图像转换为具有可定义阈值的1位黑/白,保持透明度?

如何将灰度图像转换为具有可定义阈值的1位黑/白,但保持现有的透明度/ alpha?

现有问题错过了我问题的透明度。

此外,我需要在macOS的命令行上执行此操作。 ImageMagick的convert一个选择,但不是唯一选择。

样本图片

greyscale image

必需的行为:

  1. 可定义阈值以下的像素被涂成黑色
  2. 超出可定义阈值的像素被涂成白色
  3. 透明像素保持不变

我手动准备了这个“目标”图像:

goial

我尝试过的事情:

  1. $ convert -threshold 50% in.png out.png

    • 所有超过阈值的地方都会变成白色
    • 所有低于阈值的东西都变得透明!
  2. $ convert -white-threshold 50% in.png out.png

    • 所有超过阈值的地方都会变成白色
    • 所有低于阈值的东西都变得透明!
  3. $ convert -black-threshold 50% in.png out.png

    • 所有阈值不同的东西都会变成白色
    • 什么都不会变黑!
  4. $ convert +dither -monochrome in.png out.png

    • 禁用抖动
    • 1位转换被锁定为50%,但按预期执行
    • 但是:透明像素变成黑色!
  5. $ convert -depth 1 -colors 3 -alpha set in.png out.png

    • 几乎在那里
    • 但是:阈值无法定义!

任何想法都感激!

图片参考:http://www.studentshow.com/gallery/6097929/Pyramid-Module-Value-Grayscale

解决方法

这对我来说适用于IM 6.9.11.34 Q16 Mac OSX Sierra。

enter image description here

viewDidLayoutSubviews

(在上面,您指定阈值应仅应用于rgb通道,而不应通过-channel rgb应用于alpha。在阈值之后,我将再次打开所有通道)

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。