###原圖
讀入圖片:
gray = cv2.imread('p1.jpg', cv2.IMREAD_GRAYSCALE)
中值濾波,去噪:
gray = cv2.medianBlur(gray,5)
得到圖像邊緣:
edges = cv2.Canny(gray, 50, 150, apertureSize = 3)
###1 medianBlur函數原型
void medianBlur(InputArray src, OutputArray dst, int ksize)
#####參數說明
src
輸入圖形
dst
輸出圖像
ksize
濾波模板的尺寸大小
###2 Canny函數原型
void cvCanny(
const CvArr* image,
CvArr* edges,
double threshold1,double threshold2,
int aperture_size=3
);
#####參數說明
image
輸入圖像(需爲灰度圖像)image
表示輸出的邊緣圖像(單通道黑白圖)threshold1 threshold2
兩個閾值,小的控制邊緣連接,大的控制強邊緣的初始分割
如果一個像素的梯度大於上限值,則認爲是邊緣像素,如果小於下限閾值,則拋棄,如若點的梯度在兩者之間,則當這個點與高於上限值的像素點連接時才保留,否則刪除。aperture_size
算子內核大小 ,表示Sobel 算子大小,默認爲3即表示一個3*3的矩陣