我想拍这两张照片:
基本上产生了这个:
我已经使用compare
和fuzz
来定义已更改的部分。是否有可能获得该区域的边界框并裁剪第二帧?
答案 0 :(得分:3)
我会沿着这些方向做点什么:
convert a.jpg b.jpg -colorspace gray -blur 0x2 \
-compose difference -composite \
-threshold 20% out.jpg
转换为灰度并模糊一点以隐藏小差异,然后计算差异和阈值以制作像这样的二值化图像:
然后我会去 Connected Components Analysis 找到图像中最大的对象,如下所示:
convert a.jpg b.jpg -colorspace gray -blur 0x2 \
-compose difference -composite -threshold 20% \
-define connected-components:verbose=true \
-define connected-components:area-threshold=100 \
-connected-components 8 out.jpg
Objects (id: bounding-box centroid area mean-color):
0: 1029x1079+0+0 515.0,538.4 1102870 srgb(0,0,0)
17: 76x147+326+564 366.5,641.4 5827 srgb(252,252,252)
22: 18x50+358+612 365.1,635.3 568 srgb(0,0,0)
11: 34x31+810+345 825.5,361.1 317 srgb(255,255,255)
16: 57x97+25+539 52.3,587.2 286 srgb(255,255,255)
14: 46x65+120+414 144.0,444.3 203 srgb(255,255,255)
18: 27x49+23+579 36.9,601.0 118 srgb(255,255,255)
24: 16x8+703+641 710.6,644.5 102 srgb(255,255,255)
-define connected-components:verbose=true
导致单个blob作为文本输出以进行解析。
-define connected-components:area-threshold=100
表示只输出面积大于100像素的blob。
-connected-components 8
表示允许8连接的像素被视为属于同一个对象。除了正常的北,东,南和西外,8连通意味着东北,东南,西南和东北邻居。默认情况下,ImageMagick
仅将4个连接的像素视为属于同一个对象 - 它的速度更快; - )
你的玩家是项目id 17
- 第二行,你可以看到边界框,并用
convert b.jpg -crop 76x147+326+564 player.jpg
注意:对于连接组件分析,您将需要ImageMagick 6.8.9-10或更高版本。