2011-01-12 70 views
0

我想在這裏做一個項目,這是我希望實現以下幾點:與圖像像素工作

我有一個旋轉矩陣和平移矩陣估計,現在我已經在某個位置的圖像和我想乘旋轉矩陣的所有圖像像素,並將結果添加到轉換矩陣.....

我的問題是如何使用像素?我的意思是如何從圖像中提取像素以執行上面提到的操作?

它的確定給我的建議,在任何OpenCV的或C++

* 我需要知道如何做到這一點的操作 new_p(X,Y)= old_p(X,Y)* rotation_matrix + translation_matrix。 我正在定義像IplImage(),3通道圖像的圖像。 現在我需要做幾何轉換,但我不知道如何使用old_p(x,y)這意味着舊像素*

謝謝。

+0

這取決於你的'圖像'的實現。它是一種顏色值的原始數組,手卷圖像類,還是使用某種圖像加載庫(如FreeImage)? – James 2011-01-12 20:46:07

+0

我沒有完全明白你的觀點,但我會告訴你我在做什麼。我正在處理視頻,並且想要返回到達之前位置的第二個圖像,即第一幀的位置。 – Mario 2011-01-12 20:48:46

+0

關鍵是答案將完全取決於你如何處理這些圖像。就目前而言,這是無法回答的。 C++中沒有圖像類。你可能正在談論一個字節數組或一些我們知道的圖書館「Image」類。 – 2011-01-12 20:54:52

回答

0

基本思想是,您需要最終結果圖像中每個像素的顏色值。所以你需要找到一個函數將(旋轉和平移的)像素映射到最終結果圖像的每個(x,y)位置上。

給定一個將原始圖像座標轉換爲目標圖像座標的矩陣,您可能會最終反轉該轉換並將其應用於每個目標圖像像素,再加上或減去幾次優化。

4

在Opencv中,您需要的功能位於手冊的「幾何圖像轉換」部分。在你的情況下,因爲你已經有旋轉矩陣和翻譯,所以warpAffine是選擇函數(link to function documentation)。您傳遞的轉換矩陣的前兩列是旋轉矩陣,第三列是平移矢量(如果您不熟悉齊次座標)。