我正在进行图像压缩项目。我一直坚持使用补丁提取,我只能从图像中提取一个补丁, 任何人都可以编码或制作算法来提取随机无限补丁吗?
答案 0 :(得分:0)
您可以使用ImageMagick在命令行中轻松完成此操作,ImageMagick安装在大多数Linux发行版上,可用于OSX和Windows。
首先,制作一张随机图片:
convert -size 640x480 xc:gray +noise random -resize 32x24 -scale 640x480 -auto-level base.png
现在,从中提取无限的补丁 - 确切地说是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
以下是生成的图片: