负数如何归一化处理_小白的图像处理入门(一)
這學期有兩門課程與圖像處理有關,一門是圖像處理與內容分析(數字圖像處理+機器學習),另一門SLAM課程,SLAM的全稱為Simutaneously Localization and Mapping,具體來說就是即使獲取圖像,處理圖像并進行路徑規劃與場景建模,下面是第一次作業的小結
作業1:實現SSD算法:
SSD算法的思路很簡單,假設要找的模塊為target, 找的對象是img, 那就不斷從img里面截取target大小的子圖像,然后計算兩個模塊每個像素灰度值的差的取絕對值,再平方求和得到誤差,誤差最小的子圖就是匹配得出的對象了 ,想法簡單很簡單,匹配下面這個玩意兒:
但是一看結果。。
這么簡單的算法也能出錯???
然后一番摸索,甚至從原圖中摳圖再匹配誤差仍然大得驚人,輸出一看,咋這么多255?
然后一番思索,發現:
原來,圖像每個像素灰度值被表示成了np.int8,兩個numpy數組在計算差的時候,負數還會補碼,嚇得趕緊展開成一維的圖像進行處理:
后來發現,在很多代碼中都采用了展開成一維,再用.dot()運算,運算速度也快了起來,匹配成功
作業2:實現ZNCC算法:
ZNCC,在這篇文章中有詳細的寫公式Zero Mean Normalized Cross-Correlation,意為零均值歸一化交叉熵,零均值肯定要每項減去均值,歸一化意味著要除以標準差,交叉熵體現在兩個圖片'向量'的點乘上,如果說SSD關注的是像素上的相似性,那么ZNCC關注的,更多是結構上的相似性。
為了證明上述猜測,可以對原圖進行Histogram Specification,即直方圖特例化,向檢測目標進行轉換,圖為轉化前,參考圖,以及轉化后圖
特例化后,SSD算法明顯變好
ZNCC算法評價指標可有下式子計算:
總結
以上是生活随笔為你收集整理的负数如何归一化处理_小白的图像处理入门(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux 使用jstack_案例解析:
- 下一篇: sql count用法_SQL是一门手艺