###原图
读入图片:
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的矩阵