本节学习找到图像的梯度和边界。只要用到的函数为: cv2.Sobel(), cv2.Scharr(), cv2.Laplacian()

1. Laplacian 和 Sobel的对比

import cv2
from matplotlib import pyplot as plt img = cv2.imread('dave.png',0)
#Laplcatician 导数计算图像的拉普拉斯变换,其中每个导数都使用Sobel导数
laplacian = cv2.Laplacian(img,cv2.CV_64F)
/**
sobel 是高斯平滑加微分的联合运算,对噪声有较强的抵抗能力。
可以指定倒数方向(垂直和水平)。
如果ksize=-1, 则是3*3的Scharr滤波器,其结果优于3*3的sobel滤波器。
**/
sobelx = cv2.Sobel(img, cv2.CV_64F, 1,0, ksize=5) #5*5的ksize
sobely = cv2.Sobel(img, cv2.CV_64F, 0,1, ksize=5) plt.subplot(2,2,1), plt.imshow(img,cmap='gray')
plt.title('Original'), plt.xticks([]), plt.yticks([])
plt.subplot(2,2,2), plt.imshow(laplacian,cmap='gray')
plt.title('Laplacian'), plt.xticks([]), plt.yticks([])
plt.subplot(2,2,3), plt.imshow(sobelx,cmap='gray')
plt.title('Sobel X'), plt.xticks([]), plt.yticks([])
plt.subplot(2,2,4), plt.imshow(sobely,cmap='gray')
plt.title('Sobel Y'), plt.xticks([]), plt.yticks([])
plt.show()

2. 使用16S和64F得到两边的边界

import cv2
import numpy as np
from matplotlib import pyplot as plt img = cv2.imread('box.png',0)
#8U,如果是以黑白片过度为正斜率(为正直),以白黑片过度为负斜率(为负值),如果再使用uint8,那么负斜率都会被置为0
sobelx8u = cv2.Sobel(img, cv2.CV_8U, 1,0, ksize=5)
sobelx64f = cv2.Sobel(img, cv2.CV_64F, 1,0,ksize=5) #该方法能更好的得到两边的边界
abs_sobel64f = np.absolute(sobelx64f)
sobel_8u = np.uint8(abs_sobel64f) plt.subplot(1,3,1),plt.imshow(img,cmap = 'gray')
plt.title('Original'), plt.xticks([]), plt.yticks([])
plt.subplot(1,3,2),plt.imshow(sobelx8u,cmap = 'gray')
plt.title('Sobel CV_8U'), plt.xticks([]), plt.yticks([])
plt.subplot(1,3,3),plt.imshow(sobel_8u,cmap = 'gray')
plt.title('Sobel abs(CV_64F)'), plt.xticks([]), plt.yticks([])
plt.show()

												

最新文章

  1. Django框架初入
  2. PHP裁剪图片并上传完整demo
  3. Windows驱动开发(中间层)
  4. FZU 2082 过路费
  5. wm命令用法及LCD显示图标大小不正常时解决的方法
  6. webapi拦截请求
  7. [刷题]算法竞赛入门经典(第2版) 5-16/UVa212 - Use of Hospital Facilities
  8. config OSX firewall programmatically
  9. 如何搭建ftp的yum源
  10. SharePoint Patterns and Practices 简介
  11. 第二次作业-Steam软件分析
  12. 学习MeteoInfo二次开发教程(九)
  13. The missing package manager for macOS (or Linux)
  14. python入门(六):函数
  15. Perl爬虫的简单实现
  16. 基于HTML5 WebGL实现 json工控风机叶轮旋转
  17. shell重定向命令执行顺序
  18. FASTDFS 安装与开发
  19. 软件工程第二次作业(One who wants to wear the crown, Bears the crown.)
  20. golang数据传输格式-序列化与反序列化

热门文章

  1. Android android studio常用的一些快捷键以及常用权限
  2. noip 2014 总结
  3. tesserocr与pytesseract模块的使用
  4. C语言-实例3个数由小到大排序
  5. 原生js实现文件下载并设置请求头header
  6. linux 重定向命令
  7. Centos6.5安装mysql5.7.19
  8. Centos6.5安装rar5.3
  9. 洛谷P1860——新魔法药水
  10. USACO 2011 November Cow Lineup /// map set 尺取法 oj25279