1
我正在寫一個iPhone應用程序,需要幫助弄清楚如何拍攝圖像並將其融合成單一顏色。我假設我需要做一個高斯混合,但我不確定這是否正確,或者如果這是正確的話。高斯混合的圖像
您有任何建議,指向示例高斯混合代碼片段的指針,還是我在錯誤的方向從圖像混合彩色圖像?
它不會出現我可以用現有的iPhone框架做到這一點,或者是否有在公共框架中的私人方法,這將使這項工作更容易?
我正在寫一個iPhone應用程序,需要幫助弄清楚如何拍攝圖像並將其融合成單一顏色。我假設我需要做一個高斯混合,但我不確定這是否正確,或者如果這是正確的話。高斯混合的圖像
您有任何建議,指向示例高斯混合代碼片段的指針,還是我在錯誤的方向從圖像混合彩色圖像?
它不會出現我可以用現有的iPhone框架做到這一點,或者是否有在公共框架中的私人方法,這將使這項工作更容易?
所以,你想拍攝一張圖像,並將其「融合成一種顏色」。你是否想要獲得圖像的「平均顏色」?
如果是這樣,使用高斯濾波器可能會使其過於複雜,因爲您需要的輸出只是一個單一的RGB值。做到這一點的最簡單的方法是計算平均對於每個顏色通道(紅色,綠色和藍色):
int r,g,b;
r=g=b=0;
for (y=0 ; y<image_height ; y++)
for (x=0 ; x<image_width ; x++)
{
r = r + image[y,x,0];
g = g + image[y,x,1];
b = b + image[y,x,2];
}
num_pixels = image_height * image_width;
average_r = r/num_pixels;
average_g = g/num_pixels;
average_b = b/num_pixels;
高斯濾波器是中心加權濾波器,這意味着在的中心的像素過濾窗口的權重比其他窗口更重。如果你想模糊圖像,那麼這是合適的,但是對於混合整個圖像,像上面的僞碼一樣對所有像素進行同等加權也是一樣有效的。
感謝您的澄清和僞代碼。我用它效果很好,現在可以將圖像轉換爲平均顏色。 – jangelo42 2011-02-02 22:15:43