python学习笔记04 canny算子

#视差图像预处理-canny算子对图像分割,将分割后的图像与原图做叠加,做差,分割出的部分显高亮
# coding=utf-8
import cv2
# import numpy
import numpy as np
left_img = cv2.imread('C:\\Software\\Python\\left_3.jpg')
right_img = cv2.imread('C:\\Software\\Python\\right_3.jpg')

grayimg1 = cv2.cvtColor(left_img, cv2.COLOR_BGR2GRAY)
grayimg2 = cv2.cvtColor(right_img, cv2.COLOR_BGR2GRAY)
img1 = cv2.GaussianBlur(grayimg1, (3, 3), 0)
img2 = cv2.GaussianBlur(grayimg2, (3, 3), 0)
canny1 = cv2.Canny(img1, 50, 120)
canny2 = cv2.Canny(img2, 50, 150)
cv2.imshow('Canny1', canny1)
cv2.imshow('Canny2', canny2)
cv2.imshow('Canny2-img2', canny2-img2)
#cv2.imshow('Canny2+img2', canny2+img2)

key=cv2.waitKey(0)

if key == ord("s"):
    cv2.imwrite("./snapshot/canny1_left.jpg", canny1)
    cv2.imwrite("./snapshot/canny2_right.jpg", canny2)

cv2.destroyAllWindows()

python学习笔记04 canny算子_第1张图片

python学习笔记04 canny算子_第2张图片

python学习笔记04 canny算子_第3张图片

Canny之前加高斯滤波,实现效果图上图所示

下面参考:来自 duwangthefirst 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/duwangthefirst/article/details/79971338?utm_source=copy

GaussianBlur()函数用高斯滤波器(GaussianFilter)对图像进行平滑处理该函数将源图像与指定的高斯内核进行卷积,同时也支持in-place滤波。

python API: dst = cv.GaussianBlur( src, ksize, sigmaX[, dst[, sigmaY[, borderType]]

功能说明 关于参数ksize:

ksize.width和ksize.height可以不同 取值有2种情况: 可以是正的奇数 也可以是0,

此时它们的值会自动由sigma进行计算 关于参数sigmaX和sigmaY:

sigmaY=0时,其值自动由sigmaX确定(sigmaY=sigmaX);

sigmaY=sigmaX=0时,它们的值将由ksize.width和ksize.height自动确定;

Canny之前未加加高斯滤波,Canny边缘检测后图像上明显出现噪点,检测的边缘出现许多毛刺,实现效果图如下图所示

python学习笔记04 canny算子_第4张图片

你可能感兴趣的:(Python)