天天看點

opencv 圖檔邊緣漸變_邊緣提取(?)

opencv 圖檔邊緣漸變_邊緣提取(?)

無意發現了一個圖像邊緣提取的方法,效果還比較好,準備用opencv實作一遍

sklimage的宇航員例子

opencv 圖檔邊緣漸變_邊緣提取(?)

群主頭像

opencv 圖檔邊緣漸變_邊緣提取(?)

先輩(日常迫害)

opencv 圖檔邊緣漸變_邊緣提取(?)

群裡都是什麼人啊,一發出來就有群友用matlab複現,跪了

opencv 圖檔邊緣漸變_邊緣提取(?)

實驗:

當濾鏡使用馬賽克(降低取樣率),增高空間取樣率,會觀察到逐漸向圖像邊緣靠攏的現象

opencv 圖檔邊緣漸變_邊緣提取(?)
opencv 圖檔邊緣漸變_邊緣提取(?)

使用高斯濾鏡,連續采樣變化即邊緣對比度變化

opencv 圖檔邊緣漸變_邊緣提取(?)
opencv 圖檔邊緣漸變_邊緣提取(?)
opencv 圖檔邊緣漸變_邊緣提取(?)

題頭效果:

opencv 圖檔邊緣漸變_邊緣提取(?)

如果給原圖加

高斯濾波

。。。細節全濾沒了

opencv 圖檔邊緣漸變_邊緣提取(?)
opencv 圖檔邊緣漸變_邊緣提取(?)

總結:

本質就是在給邊緣權重

如果是高斯模糊,就直接平滑處理了,并看不出馬賽克那種展示效果(圖檔方形分塊)

PS實作以及原了解釋:

圖檔轉灰階(亮度分攤到RGB色彩上)

給灰階圖加濾波,高斯,馬賽克即可(濾波)

灰-原 劃分合成 (亮度與原圖做減法)

灰階,任何色彩映射均可映射(映射灰階空間 128-255)

最後閥值二值化

注: 有文字時可以根據圖檔上的文字調濾波器參數

本人初學圖像處理,對其原了解答可能并不正确。 補充:代碼實作
img = cv2.imread('hj.jpg')
img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
img_blur = cv2.GaussianBlur(img_gray, (21, 21), 0, 0)

#bgrgray = cv2.cvtColor(img_gray, cv2.COLOR_GRAY2BGR)
bgrgray = cv2.cvtColor(img_blur, cv2.COLOR_GRAY2BGR)
img_blend = cv2.divide(img, bgrgray, scale=256)
#img_result = cv2.cvtColor(img_blend, cv2.COLOR_GRAY2BGR)

imggray = cv2.cvtColor(img_blend, cv2.COLOR_BGR2GRAY)
_, img_result = cv2.threshold(imggray,223,255,cv2.THRESH_BINARY)
           

參考:

OpenCV 教程 - OpenCV 2.3.2 documentation

Photoshop Blend Modes Explained - Photo Blog Stop