随机补丁提取(10000)

时间:2016-02-25 12:00:30

标签: image patch

我正在进行图像压缩项目。我一直坚持使用补丁提取,我只能从图像中提取一个补丁, 任何人都可以编码或制作算法来提取随机无限补丁吗?

1 个答案:

答案 0 :(得分:0)

您可以使用ImageMagick在命令行中轻松完成此操作,ImageMagick安装在大多数Linux发行版上,可用于OSX和Windows。

首先,制作一张随机图片:

convert -size 640x480 xc:gray +noise random -resize 32x24 -scale 640x480 -auto-level base.png

enter image description here

现在,从中提取无限的补丁 - 确切地说是10,但是你可以根据需要更改第3行!

#!/bin/bash
# Get width and height of base image
read w h < <(convert base.png -format "%w %h" info:)

# Generate infinite (well, 10) patches
for ((i=0;i<10;i++)) ; do
   # Generate random top left corner
   ((x=RANDOM % (w-1) ))
   ((y=RANDOM % (h-1) ))

   # Generate random width and height
   ((a=RANDOM % (w-x) ))
   ((b=RANDOM % (h-y) ))
   # DEBUG echo $x,$y,$a,$b
   # Extract patch to file "result-$i.png"
   convert base.png -crop ${a}x${b}+${x}+${y} result-${i}.png
done

以下是生成的图片:

enter image description here