【问题标题】:slice image based on horizontal lines基于水平线的切片图像
【发布时间】:2020-09-23 07:43:35
【问题描述】:

希望有人可以帮助我,或者只是确认这是否真的可行。

我有一个带有水平线的 PNG 文件。我想根据这些行将图像拆分为较小的文件。 我怎样才能做到这一点?这可以使用 imageMagick 吗?或者来自任何其他允许它自动和批处理的应用程序。

我也附上了文件,这样更清楚。

谢谢

原始文件:

切片第 1 部分:

切片第 2 部分:

切片第 3 部分:

切片第 4 部分:

【问题讨论】:

  • 另外,该行是手动放置的,因此如果需要它具有可以满足的特定尺寸或颜色。
  • 应该是可以的!如果您可以使用 Linux 或 macOS 而不是 Windows,并且可以确保始终使用相同的颜色并确保线条覆盖文档的整个宽度并将文档另存为 PNG,那么您可能会让生活变得更轻松而不是 JPEG。

标签: image-processing imagemagick image-manipulation imagemagick-convert


【解决方案1】:

Bash 脚本:

#!/bin/sh
w=$(identify -ping -format '%[width]' green_lines.png)
h=$(identify -ping -format '%[height]' green_lines.png)
convert green_lines.png -resize 1x"${h}"\! -resize "${w}"x"${h}"\! out_green.png
convert out_green.png -colorspace HSV -channel S -separate  out_greenS.png
convert out_greenS.png -threshold 50% -negate out_greenS.png

convert out_greenS.png -define connected-components:verbose=true \
-define connected-components:area-threshold=500000 \
-connected-components 8 objects.png| awk '{print $2}'|tail -n +2 >coodr.txt
i=0
while read size
do 
convert green_lines.png -crop "${size}"  crop_"${i}".png
i=$((i+1))
done < coodr.txt

【讨论】:

  • 我知道我的代码不好,对不起。但它有效。我在 cigwin64 的 Windows 10 中运行它。在这种情况下,连接组件的数量并不重要。我希望看到这个问题的一个好的解决方案..
  • 我们都是来学习的——嗯,至少我的意图是这样。让我们看看会发生什么?
  • 谢谢@AlexAlex 我希望这个问题对其他人也有用。
猜你喜欢
  • 2013-07-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-26
  • 2020-09-05
  • 1970-01-01
  • 1970-01-01
  • 2023-04-03
相关资源
最近更新 更多