2014-09-22 50 views
0

我正在考慮編寫一個非常簡單的程序來逐個像素地比較2個ARGB數組。兩個圖像都是相同的分辨率,採用相同的相機源。比較一個接一個接一個的位圖2

由於相機正在舉行的是,我期待這是一個相當簡單的程序來通過

  1. 轉換的每一個像素從位置0比位圖源爲灰度像素
  2. 字面上比較每個像素爲N 。
  3. 有一個isClose方法做一個大概+/- 3

的結果是,我有太多的錯誤位。但是,當從中取出JPEG並用肉眼觀看時,它們看起來是完全相同的(這是這種情況)。

爲什麼你認爲我比較他們時看到如此多的錯誤?

順便說一句 - 我想寫一個非常基本的運動檢測版本。

+0

這可能有助於http://www.hackerfactor.com/blog/?/archives/529-Kind-of-Like-That。 HTML和這裏是交流#執行http://01101001.net/Imghash.zip – user3473830 2014-09-22 04:59:26

+0

聽起來很有前途...將檢查出來。謝謝。 – 2014-09-22 06:25:39

+0

您可以先將照片重新採樣到一個非常合理的分辨率,以便一個像素是您正在跟蹤的對象的近似大小。這肯定會減少比較圖像時看到的錯誤數量,但是否會幫助檢測或不發現,我不知道。 – 2014-09-22 07:52:41

回答

1

如果您正在跟蹤一個已知對象,則可以在比較它們之前預先處理圖像。例如,如果它是一個您正在跟蹤的球,並且它看起來比周圍環境更亮,則可以將灰度圖像設爲閾值,從而僅生成黑色或白色的圖像。然後檢測出所謂的「輪廓」(參見openCV文檔)。一旦你得到了任何圖像中的(球)之後的輪廓,就可以比較它在每個連續圖像中的位置。有一些算法可以幫助找出移動對象將在下一個的位置,這有助於在下一幀中找到它。 不知道你在做什麼,很難給出具體的東西。
而我看到你是C#...也許這將有助於:.Net (dotNet) wrappers for OpenCV?

0

b/c的圖片是不一樣的。每一個你按下相機的按鈕都有點不同。 如果逐個像素地進行比較,則該變化是「巨大的」。

我不是運動檢測方面的專家,但是嘗試比較像素周圍的平均值 - 我認爲它會給你更好的結果。