2016-02-25 85 views
0

我正在進行圖像壓縮項目。我堅持使用補丁提取,我只能從圖像中提取一個補丁, 任何人都可以編碼或製作算法來提取隨機無限補丁?隨機修補程序提取(10000)

+0

嗨克里希納。歡迎來到堆棧溢出!請參閱[遊覽](http://stackoverflow.com/tour)並閱讀[如何提問](http://stackoverflow.com/help/how-to-ask),以瞭解我們對此問題的期望。請注意,我們不提供從頭編碼服務。請告訴我們您已經嘗試過的方式,失敗的方式以及我們可能會提供的幫助。 – jurgemaister

+0

什麼問題?生成兩個不同於圖像寬度的不同隨機數和兩個小於高度的不同隨機數,現在提取由x1,y1和x2,y2定義的矩形。 –

+0

我的答案是否解決了您的問題?如果是這樣,請考慮接受它作爲您的答案 - 通過點擊投票計數旁邊的空心綠色勾號/複選標記。如果沒有,請說出什麼不起作用,以便我或其他人可以進一步幫助您。謝謝。 –

回答

0

您可以在命令行輕鬆地使用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