我知道我迟到了几年:-)但是现在您可以很容易地使用ImageMagick完成这类操作,直接在命令行执行,而无需编译任何内容,因为它内置了连接组件分析的组件:
有一种方法可以做到这一点:#!/bin/bash
image="$1"
draw=$(convert $image \
-threshold 50% \
-define connected-components:verbose=true \
-define connected-components:area-threshold=10 \
-connected-components 8 \
-auto-level objects.png | \
awk 'BEGIN{command=""}
/\+0\+0/||/id:/{next}
{
geom=$2
gsub(/x/," ",geom)
gsub(/+/," ",geom)
split(geom,a," ")
d=sprintf("-draw \x27rectangle %d,%d %d,%d\x27 ",a[3],a[4],a[3]+a[1],a[4]+a[2])
command = command d
#printf "%d,%d %d,%d\n",a[3],a[4],a[3]+a[1],a[4]+a[2]
}
END{print command}')
eval conver