当前位置:   article > 正文

【笔记】OpenCV3 图形处理-边缘检测(三)_opencv blurred

opencv blurred
  • 计算机视觉中有三种常用色彩空间
    • 灰度  去掉彩色信息,转换为灰阶
    • BGR  蓝绿红的色彩空间,每个像素点用一个三维数组来表示
    • HSV  H 色调、S 饱和度、V 程度

 

  • 高通滤波器

检测图像的某个区域,根据像素与周围像素的亮度差值来提升该像素亮度的滤波器

计算完中央像素与周围临近像素后,如果亮度变化很大,中央像素会增加(相反不会),如果一个像素比它周围突出很多,就会提升他的亮度,这对边缘检测就比较有效了。。。

定义两个核,与图像卷积看看效果

  1. import cv2
  2. import numpy as np
  3. from scipy import ndimage
  4. kernel_3X3 = np.array([
  5. [-1,-1,-1],
  6. [-1, 8,-1],
  7. [-1,-1,-1]
  8. ])
  9. kernel_5X5 = np.array([
  10. [-1, -1 ,-1, -1, -1],
  11. [-1, 1, 2, 1, -1],
  12. [-1, 2, 4, 2, -1],
  13. [-1, 1, 2, 1, -1],
  14. [-1, -1, -1, -1, -1]
  15. ])

将图片灰度读出,与自定义的核进行卷积,看下效果

  1. img = cv2.imread("img/Lena.jpg",0)
  2. cv2.imshow('img',img)
  3. k3 = ndimage.convolve(img, kernel_3X3)
  4. k5 = ndimage.convolve(img, kernel_5X5)
  5. cv2.imshow('3X3',k3)
  6. cv2.imshow('5X5',k5)

  • 低通滤波器 

检测图像的某个区域,在像素与周围像素的亮度差值小于一个特定值时,平衡该像素的亮度,它主要用于去噪与模糊

 

  • 另外的实现方式:对图像采用低通滤波器后,再与原图像计算差值,来实现
  1. blurred = cv2.GaussianBlur(img, (11,11), 0)
  2. cv2.imshow('blurred',blurred)
  3. g_hpf = img - bl
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/86672
推荐阅读
相关标签
  

闽ICP备14008679号