image-processing - 使用 Imagemagick 仅显示所有非黑色、非白色像素
问题描述
我有一个(灰度)图像,它几乎完全是但不完全是双色调的。我想查看所有不完全是黑色或白色的像素。
如何使用 Imagemagick 做到这一点?
【我想出了一种方法,我还是接受最好的另一种方法!]
解决方案
如果您以加号“+”而不是破折号“-”开头,ImageMagick 或多或少地具有“-opaque”的反向版本。此命令会将所有纯白色和纯黑色像素更改为白色,并将所有其他像素更改为红色...
magick bw_img.png -colorspace rgb ^
-fill white -opaque black -fill red +opaque white result.png
设置色彩空间后,第一个“-opaque”操作将用白色填充每个纯黑色像素。当然,所有的白色像素都已经是白色的了。
然后将填充颜色改为红色,“+不透明”操作会将每个不是纯白色的像素都用红色填充。
那是在 Windows 语法中。对于“nix 系统,该续行插入符“^”应更改为反斜杠“\”或将命令转换为单行。
对于 ImageMagick v6,将“magick”更改为“convert”。
编辑添加...
您使用“-transparent”的解决方案是有效的,并且可能是某些工作流程的最佳答案。请记住,有一个带有加号“+”的类似选项,您可以将其与“-transparent”运算符一起使用。举个例子,这将创建一个完全透明的输入图像版本......
magick logo: -background none -transparent red +transparent red result.png
首先它将每个纯红色像素变为透明,然后将所有不是纯红色的像素变为透明。
推荐阅读
- java - 无法解析 showAddDialog 中的符号
- visual-studio - 将 Visual Studio Online 项目下载到不同 PC 时处理丢失 DLL 的正确方法
- python - 如何在 sqlite3 中存储列表(使用数据创建图表)?
- javascript - 当元素未定义时,Javascript if 语句不输出我想要的值
- video - 在整页js滚动上向前和向后播放视频
- node.js - GraphQL 关系
- java - 从终端 ClassNotFoundException 手动编译 Java
- pandas-groupby - 创建一个图表,按不同年龄显示平均医疗费用
- tsql - 使用 SET NOEXEC ON 时抑制数据库错误消息
- c++ - auto 和 __auto_type 之间有什么区别吗?