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()

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边缘检测后图像上明显出现噪点,检测的边缘出现许多毛刺,实现效果图如下图所示

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值