找茬那种游戏,两张一样的图,其中一张多了些东西。 想做个检测工具,识别两张图的不同之处,有什么算法思路?
认证0级讲师
先將兩張圖的頂點對齊,然後對像素做diff 得到一個包含RGB 差值新圖,將這個新圖做歸一化,再用邊緣檢測演算法把新圖裡面的圖像輪廓勾出來,最後求出輪廓的包絡,這個包絡就是找不同裡面要點選的區域了。
簡單一點,以5個像素為一個單元切割大圖,然後對比每個小圖的二值~
最簡單的辦法。 假設兩張圖長寬一致,直接從左上角讀取像素,存成一個RGB二維陣列。比較兩個陣列的不同之處,相同之處標為白色,反之標為黑色。以這個二維數組產生一張圖,黑色部分就是有差異的部分了。
找茬的很好辦,讀取兩張圖片值,然後相減就行
大學畢設做了類似的東西。實際上兩張圖直接相減會有很多雜訊的,需要一些處理。降噪的手法有很多:模糊->二值化,剩下一些色塊,用連通成分標記演算法將這些塊整合起來,然後處理出bounding box 就可以輸出給其它模組用了。
把圖按RGB亮度值作差,然後將得到的差值影像轉成灰階圖,再透過腐蝕和膨脹演算法將不同點放大。如果有了解OpenCV的話這東西幾個函數就能搞定。
研一數位影像處理的實驗四。 。 。樓主是不是!
先將兩張圖的頂點對齊,然後對像素做diff 得到一個包含RGB 差值新圖,將這個新圖做歸一化,再用邊緣檢測演算法把新圖裡面的圖像輪廓勾出來,最後求出輪廓的包絡,這個包絡就是找不同裡面要點選的區域了。
簡單一點,以5個像素為一個單元切割大圖,然後對比每個小圖的二值~
最簡單的辦法。
假設兩張圖長寬一致,直接從左上角讀取像素,存成一個RGB二維陣列。比較兩個陣列的不同之處,相同之處標為白色,反之標為黑色。以這個二維數組產生一張圖,黑色部分就是有差異的部分了。
找茬的很好辦,讀取兩張圖片值,然後相減就行
大學畢設做了類似的東西。實際上兩張圖直接相減會有很多雜訊的,需要一些處理。降噪的手法有很多:模糊->二值化,剩下一些色塊,用連通成分標記演算法將這些塊整合起來,然後處理出bounding box 就可以輸出給其它模組用了。
把圖按RGB亮度值作差,然後將得到的差值影像轉成灰階圖,再透過腐蝕和膨脹演算法將不同點放大。如果有了解OpenCV的話這東西幾個函數就能搞定。
研一數位影像處理的實驗四。 。 。樓主是不是!