本文為 AI 研習社編譯的技術博客,原標題 :
An Amazing Insight of How Image Processing Works
作者 | Bhanu Parashar
翻譯 | 老趙 校對 | 醬番梨
整理 | 菠蘿妹
原文鏈接:
https://medium.com/@bhanuparashar23/an-amazing-insight-of-how-image-processing-works-9b7a17aa42a4
對圖像處理如何工作的理解
我發現的最令人驚奇的是如何使用微積分巧妙地計算圖像邊緣。
考慮一個黑白圖像
在這裡,我放大了一個小區域。
如你所見,它包含許多像素。
它可以表示為具有以下約束的2D矩陣:
- 在AijAij中,i表示像素的x座標,j表示y座標
- 左上角是座標(0,0)
- x,即向右移動時增加,而y,j在向下移動時增加
- AijAij的值範圍為0到255,0表示黑色255表示白色
所以這個小區域的矩陣將是
現在只考慮矩陣的一行。
即:像這樣的東西
表示為:
如果我們在圖表上繪製它:
它會像
記住高值意味著更多的白色,低值意味著更多的黑色,範圍從0到255。
第1部分:現在有趣的開始
如果我們將這個圖表區分開來,考慮到函數y = f(x),該怎麼辦?
這裡y是值AijAij,x是矩陣的i(這裡y是不同的)
那麼讓我們繪製它的衍生物
正如你可以看到,從白色到黑色的圖像變化點,衍生物的值突然增加
如果我們進一步區分,即雙重差異,該怎麼辦?
所以你可以看到變化區域的突然爆發。
讓我們在圖像行中標記點:
現在,如果我們將這個東西應用於所有行並標記雙重導數的高值。
它沿著圖像的邊緣
同樣也可以將它用於所有列,你將獲得圖像中的完整邊緣。
第2部分:數學實施(比上面更令人驚訝)
如何通過計算機將這種差異應用於圖像:
一些數學家發現了一種叫做卷積的現象讓我先解釋一下:
考慮一個大的NxN矩陣和一個小的3x3矩陣:
這裡,如果小矩陣的點積與大矩陣的所有3x3大小的部分完成。 點積表示每個元素乘以其各自的元素,例如。 131 *( - 1),162 * 0,232 * 1等。
結果保存在另一個矩陣中。
這個過程稱為卷積,這裡3x3矩陣是內核,它可以更大,但最常用的是3x3。
這種現象是,如果一個大矩陣與一個類似於核的核心區域進行卷積,則在結果矩陣中突出顯示(值增加),而非相似區域變暗。
代表雙重差異的內核是:
以上這些也稱為Sobel Kernel
第3部分:基於C ++的OpenCV實現
輸出
通過使用高斯導數,Canny邊緣檢測去除噪聲可以實現許多進步,這些可以在線輕鬆研究。
圖像:除了提供鏈接的圖像之外的所有圖像都是由我捕獲和編輯的。
它如何擴展到彩色圖像
顏色通常表示為RGB值(這裡是OpenCV,它是BGR)
B->藍色,G->綠色,R->紅色邊緣檢測通常在將彩色圖像轉換為黑白之後進行。
但是還有一種方法,Image可以轉換為HSV色空間這裡 H 代表 Hue,S 代表飽和度,V 代表值,即 H 代表顏色,S 代表強度,V 代表亮度。
因此,如果我們只採用H或Hue,我們可以找到邊緣而不受陰影或光線的影響。
還有其他方法。雷鋒網雷鋒網雷鋒網
想要繼續查看該篇文章相關鏈接和參考文獻?
長按鏈接點擊打開或點擊【一文帶你讀懂圖像處理工作原理】:
http://ai.yanxishe.com/page/TextTranslation/1248
AI研習社每日更新精彩內容,觀看更多精彩內容:
神經網絡如何完成表徵?
進入 kaggle 競賽前 2% 的祕訣
如何極大效率地提高你訓練模型的速度?
這 25 個開源機器學習項目,一般人我不告訴 Ta
等你來譯:
五個很厲害的 CNN 架構
這5種計算機視覺技術,刷新你的世界觀
神經網絡和3D程序化生成的未來
使用TensorSpace.js來做神經網絡的的3D可視化
AI研習社資料推薦: