在破解一个简单的项目时,我陷入了RMagick
问题的一天。由于我对RMagick
很陌生,因此需要建议。
我正在尝试扫描用户上传的图像,并尝试将图像捕捉/选择到实际内容所在的特定区域。但是用户可能会用手机或其他设备拍摄图像,并最终给图像增加很多噪音。
从用户上传的示例image如下所示。
我试图将图像转换为像波纹管这样的greyscale
img.quantize(2, GRAYColorspace, false)
但是转换时会产生很大的噪声(image)。有人能建议我如何只选择包含上载图像中实际信息的截面/矩形吗?
下面是我要弄污双手的方法。
答案 0 :(得分:1)
在ImageMagick命令行中,可以使用-negate(反转颜色)和-lat(局部区域阈值)将其转换为二进制(黑白),这可能更多。 RMagick中应该有等效的命令。
convert t2.jpg -negate -lat 20x20+10% -negate result.png
添加:
请注意,上面生成的图像中有一些黑点。您需要先使用-connected-components过滤掉它们,然后才能将图像修整为黑框。
convert t2.jpg -negate -lat 20x20+10% -negate -type bilevel \
-define connected-components:area-threshold=10 \
-define connected-components:mean-color=true \
-connected-components 4 \
-bordercolor white -border 1x1 \
-fuzz 15% -trim +repage \
result.png