fanfuhan OpenCV 教學026 ~ opencv-026-邊緣保留濾波算法(EPF)–高斯雙邊模糊

fanfuhan OpenCV 教學026 ~ opencv-026-邊緣保留濾波算法(EPF)–高斯雙邊模糊

fanfuhan OpenCV 教學026 ~ opencv-026-邊緣保留濾波算法(EPF)–高斯雙邊模糊


資料來源: https://fanfuhan.github.io/

https://fanfuhan.github.io/2019/04/06/opencv-026/

GITHUB:https://github.com/jash-git/fanfuhan_ML_OpenCV


前面我們介紹的圖像卷積處理無論是均值還是高斯都是屬於模糊卷積,它們都有一個共同的特點就是模糊之後圖像的邊緣信息不復存在,受到了破壞。我們今天介紹的濾波方法有能力通過卷積處理實現圖像模糊的同時對圖像邊緣不會造成破壞,濾波之後的輸出完整的保存了圖像整體邊緣(輪廓)信息,我們稱這類濾波算法為邊緣保留濾波算法(EPF)。


C++

# include  <iostream>
# include  <opencv2/opencv.hpp>

using  namespace  std ; 
using  namespace cv;

/* 
*高斯雙邊模糊
*/ 
int  main ()  
{ 
    Mat src = imread( "../images/test.png" ); 
	if (src.empty()) 
	{ 
		cout << "could not load image.." << endl ;
	}
	imshow( "input" , src);

    Mat dst; 
    bilateralFilter(src, dst, 0 , 100 , 10 , 4 ); 
    imshow( "gaussian_bilater_blur" , dst);

    waitKey( 0 ); return 0 ;
}

Python

import cv2 as cv 
import numpy as np

src = cv.imread( "../images/test.png" ) 
cv.namedWindow( "input" , cv.WINDOW_AUTOSIZE) 
cv.imshow( "input" , src)

h, w = src.shape[: 2 ] 
dst = cv.bilateralFilter(src, 0 , 100 , 10 ) 
result = np.zeros([h, w* 2 , 3 ], dtype=src.dtype) 
result[ 0 :h, 0 :w,:] = src 
result[ 0 :h,w: 2 *w,:] = dst 
cv.imshow( "result" , result)


cv.waitKey( 0 ) 
cv.destroyAllWindows()

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *