2009-07-29 57 views
1

我想製作一個應用程序,讓您的朋友個人資料圖片說出你的臉書,myspace或Twitter帳戶,並將它們全部製作成圖像。我已經知道如何使用這些社交網絡的API來獲取圖片網址,問題是,我如何將它們「縫合」在一起。通過將其他人拼接在一起來製作更大的圖像

如果您知道如何使用Zend或PEAR中的特定類來完成此操作,那麼將會很棒,因爲這正是我們正在使用的。

謝謝。

回答

0

一個非常基本方法是把你的目標圖像,並把它剪到更小的圖像轉換成圖像集,我們可以稱之爲T.

    (你希望你的合成圖像,看起來像圖片)
  1. 找到T中每個圖像的「平均顏色」。

  2. 取出你的一組朋友圖像,我們稱之爲F組,找到每個圖像的「平均顏色」。

  3. 現在將T中的每個圖像與F中的圖像進行匹配,以便顏色之間的距離儘可能小。在這裏,你將不得不考慮是否允許在F中的同一圖像在T.

一個稍微不那麼基本方法使用一個以上的圖像將(使用與上述相同的一組):

  1. 平均數濾波器T中和F的各圖像(如在模糊它們)

  2. 匹配中T各自的圖像與F中的圖像,通過使用最小平方誤差計算。

我能想到的,但其他更先進的方法有很多更多的數學重分別是:

  • 基於主成分分析挑選出是F和T主成分和匹配。
  • 使用任何類型的描述符(SIFT,SURF,...)在目標圖像中查找F中的圖像。這可以讓你有一個不均勻的網格,或者根本沒有任何網格,F中的兩幅圖像可能最終會在最終的圖像中產生截然不同的大小。

至於框架,我認爲它根本不重要。你需要的是一個好的圖像庫,使操作圖像更容易。

+0

這是很好的信息,但我不認爲提問者詢問是否匹配一個大的圖像 - 只是通過將其他圖像拼接在一起來製作更大的圖像。 – 2009-07-30 13:41:54

+0

@Lou Franco:Ouch,我現在看到了...猜我的想法是設置在更難的東西:) – 2009-07-30 16:05:05

1

我會看看ImageMagick的集成到您的解決方案

http://us3.php.net/imagick

我不使用它,而是通過看實例,它開始像:

<?php 
/* Create the big image. */ 
$im = new Imagick(); 
$im->newPseudoImage(500, 500, "white"); 

/* Create the small image. */ 
$faceImg = new Imagick('face.jpg'); 


?> 

我沒有看到如何將$ faceImg覆蓋到$ im上,但imagemagick具有該功能。如果PHP綁定不夠好,您可以始終使用ImageMagick的命令行版本。

0

我認爲是難懂的命令拼接圖像

轉換1.JPG 2.JPG -rotate 90 -append 270 final.jpg

我認爲這是你在找什麼

相關問題