如何實現“比較兩張圖片的相似度”,或者說“比較兩張圖片是否基本一致”的演算法?
這個演算法如果能實現, 有很多有用的地方。
我的想法是從攝像頭採集到的視訊, 取出其中的bmp圖片, 儲存一張靜止的圖片作為參照物, 這個時候假如有一個移動的物體從攝像頭經過, 採集到的bmp圖片肯定與參照物不一致,這個時候就會把這張圖片儲存下來, 所以我需要一個演算法, 可以比較兩張圖片是否基本一致。
在此列出該問題是希望大家各抒己見, 互相討論一下這個演算法的實現思路。
下面是有人提出的思路:
思路一:
有個簡單的方法就是隨機取兩幅圖上的相同座標的色素用Bitmap.GetPixel()方法。。你可以隨機取10000次或者多少。然後對比每次取的畫素是否相等。。兩個變數來累計。。這樣就可以粗略的計算出兩個圖片是否相似了。
思路二:
迴圈 for [i , j]
{
讀出圖片A 一點(畫素)的 RGB 數值。
計算出灰度 YA[j][i] = 0.3*R + 0.59*G + 0.11*B
讀出圖片B 一點(畫素)的 RGB 數值。
計算出灰度 YB[j][i] = 0.3*R + 0.59*G + 0.11*B
計算 一點 的 相似係數,
例如 灰度差除以兩點平均灰度:
fabs(YA[j][i]-YB[j][i]) / ((YA[j][i]+YB[j][i])/2.0) -- 數值越小越相似
}
有了所有點的相似係數,做統計算,例如,把相似係數分20檔,
計算落入各檔的畫素點的個數--就是概率啦。
畫 概率分佈圖 和 累加 概率分佈圖。
當然,你可以設 累加 概率等於 幾的地方 為 相似度 判據。
相關文章
- C#比較兩個字串的相似度【轉】C#字串
- PostgreSQL如何比較兩個表的定義是否一致SQL
- 比較兩個table是否相同
- java中利用hanlp比較兩個文字相似度的步驟JavaHanLP
- 比較兩個TABLE的資料是否完全一致
- python如何比較兩個字串是否相等Python字串
- 相容oracle的edit_distance_similarity 比較兩個字串相似度OracleMILA字串
- 比較兩個陣列是否相等陣列
- shell比較兩個字串是否相等字串
- SQL Server相似比較演算法實現SQLServer演算法
- 實現簡單的輪播圖(單張圖片、多張圖片)
- matlab比較兩個矩陣是否相等Matlab矩陣
- 比較兩個陣列中是否有相同的元素陣列
- Java 兩個日期比較Java
- 輸入兩個長度相同的字串,比較兩個數在相同位置的字元是否相同字串字元
- 用canvas實現一個自動識別兩張圖片差異(圖片找不同)的功能Canvas
- SQL Server對比兩字串的相似度(函式演算法)SQLServer字串函式演算法
- COPA 獲利分析的兩種方式比較
- Js 比較兩個物件的鍵名與鍵值是否相等JS物件
- JavaScript比較兩個時間JavaScript
- Oracle中spool命令實現的兩種方法比較-入門Oracle
- 比較符號兩邊型別保持一致符號型別
- 圖片相似度對比SSIM和PHash
- 比較兩個物件是否相同,輸出不同的屬性值(一)物件
- javascript比較兩個時間日期的大小JavaScript
- 比較兩個資料庫的差異資料庫
- 比較兩個的表結構差異
- 比較兩個表的資料差別
- python清空字典的兩種方法比較Python
- JavaScript比較兩個時間大小JavaScript
- mysql比較兩個日期間隔MySql
- 如何比較兩個資料庫表結構的不同資料庫
- javascript如何判斷一張圖片是否載入完成JavaScript
- .NET CORE下最快比較兩個檔案內容是否相同的方法
- js實現的圖片相似度演算法程式碼JS演算法
- Same Tree 比較兩個二叉樹是否完全相同二叉樹
- android 比較靠譜的圖片壓縮Android
- 影像相似度比較和檢測影像中的特定物