对于我的工作,我们有时会处理几千张照片。但是只有带文字的照片(例如扫描文件)对我们来说很重要,所以我们只想要黑白照片(黑色照片可能很轻)。
这实际上是一种在我们让ocr工具松散之前过滤照片的方法。
所以经过一些谷歌搜索后,我认为我需要从图片中的每个像素计算RGB值,并且"纯粹"白色和"纯净"黑色。
我发现:Get Color Palette of Image using PowerShell
但不知道如何继续前进到我可以说的地方:这个图像主要由白色和黑色像素组成。
简而言之:
答案 0 :(得分:3)
黑色,白色(和灰色阴影)的特点是饱和度非常低,因此您可以使用 ImageMagick (作为单线)来获得平均值或峰值饱和度,看看是否超过低门槛。
假设你的图像被称为image.jpg
,这将告诉你图像的平均饱和度 - 表示为0(纯黑色和白色)和100(完全饱和色)之间的数字:
convert image.jpg -colorspace HSL -channel S -separate -format "%[fx:int(100*mean)]" info:
所以,如果我制作饱和的蓝色图像:
convert -size 100x100 xc:blue blue.jpg
并测试它,我得到100:
convert blue.jpg -colorspace HSL -channel S -separate -format "%[fx:int(100*mean)]" info:
100
然而,如果我做一个黑白渐变:
convert-size 100x100 gradient:black-white gradient.jpg
并测试它,我得到零饱和度(没有颜色):
convert gradient.jpg -colorspace HSL -channel S -separate -format "%[fx:int(100*mean)]" info:
0
您可以像这样阅读 ImageMagick 命令... “打开输入图像并将其转换为色调,饱和度和亮度而不是RGB。选择饱和度通道并将其分开out - 丢弃Hue和Lightness。然后告诉我该通道的平均值缩放到0-100范围内的整数。“
如果您安装v7或更好的 ImageMagick ,请在命令中将convert
更改为magick
- 或勾选标有“安装旧版工具版本的复选框“安装时。