python通过robert、sobel、Laplace算子实现图像边缘提取详解


Posted in Python onAugust 21, 2019

实现思路:

1,将传进来的图片矩阵用算子进行卷积求和(卷积和取绝对值)

2,用新的矩阵(与原图一样大小)去接收每次的卷积和的值

3,卷积图片所有的像素点后,把新的矩阵数据类型转化为uint8

注意:

必须对求得的卷积和的值求绝对值;矩阵数据类型进行转化。

完整代码:

import cv2
import numpy as np
 
# robert 算子[[-1,-1],[1,1]]
def robert_suanzi(img):
  r, c = img.shape
  r_sunnzi = [[-1,-1],[1,1]]
  for x in range(r):
    for y in range(c):
      if (y + 2 <= c) and (x + 2 <= r):
        imgChild = img[x:x+2, y:y+2]
        list_robert = r_sunnzi*imgChild
        img[x, y] = abs(list_robert.sum())   # 求和加绝对值
  return img
         
# # sobel算子的实现
def sobel_suanzi(img):
  r, c = img.shape
  new_image = np.zeros((r, c))
  new_imageX = np.zeros(img.shape)
  new_imageY = np.zeros(img.shape)
  s_suanziX = np.array([[-1,0,1],[-2,0,2],[-1,0,1]])   # X方向
  s_suanziY = np.array([[-1,-2,-1],[0,0,0],[1,2,1]])   
  for i in range(r-2):
    for j in range(c-2):
      new_imageX[i+1, j+1] = abs(np.sum(img[i:i+3, j:j+3] * s_suanziX))
      new_imageY[i+1, j+1] = abs(np.sum(img[i:i+3, j:j+3] * s_suanziY))
      new_image[i+1, j+1] = (new_imageX[i+1, j+1]*new_imageX[i+1,j+1] + new_imageY[i+1, j+1]*new_imageY[i+1,j+1])**0.5
  # return np.uint8(new_imageX)
  # return np.uint8(new_imageY)
  return np.uint8(new_image) # 无方向算子处理的图像
 
# Laplace算子
# 常用的Laplace算子模板 [[0,1,0],[1,-4,1],[0,1,0]]  [[1,1,1],[1,-8,1],[1,1,1]]
def Laplace_suanzi(img):
  r, c = img.shape
  new_image = np.zeros((r, c))
  L_sunnzi = np.array([[0,-1,0],[-1,4,-1],[0,-1,0]])   
  # L_sunnzi = np.array([[1,1,1],[1,-8,1],[1,1,1]])   
  for i in range(r-2):
    for j in range(c-2):
      new_image[i+1, j+1] = abs(np.sum(img[i:i+3, j:j+3] * L_sunnzi))
  return np.uint8(new_image)
 
 
img = cv2.imread('1.jpg', cv2.IMREAD_GRAYSCALE)
cv2.imshow('image', img)
 
# # robers算子
out_robert = robert_suanzi(img)
cv2.imshow('out_robert_image', out_robert)
 
# sobel 算子
out_sobel = sobel_suanzi(img)
cv2.imshow('out_sobel_image', out_sobel)
 
# Laplace算子
out_laplace = Laplace_suanzi(img)
cv2.imshow('out_laplace_image', out_laplace)
 
cv2.waitKey(0)
cv2.destroyAllWindows()

结果:

python通过robert、sobel、Laplace算子实现图像边缘提取详解

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python遍历 truple list dictionary的几种方法总结
Sep 11 Python
python pandas中DataFrame类型数据操作函数的方法
Apr 08 Python
Python爬虫之网页图片抓取的方法
Jul 16 Python
Python 忽略warning的输出方法
Oct 18 Python
Python3爬虫学习之应对网站反爬虫机制的方法分析
Dec 12 Python
Python线程池模块ThreadPoolExecutor用法分析
Dec 28 Python
python pandas 时间日期的处理实现
Jul 30 Python
python脚本执行CMD命令并返回结果的例子
Aug 14 Python
Python 线性回归分析以及评价指标详解
Apr 02 Python
python tkinter的消息框模块(messagebox,simpledialog)
Nov 07 Python
Python 求向量的余弦值操作
Mar 04 Python
使用tensorflow 实现反向传播求导
May 26 Python
Python爬虫:url中带字典列表参数的编码转换方法
Aug 21 #Python
Python GUI学习之登录系统界面篇
Aug 21 #Python
Python爬虫:将headers请求头字符串转为字典的方法
Aug 21 #Python
利用python在大量数据文件下删除某一行的例子
Aug 21 #Python
Python 仅获取响应头, 不获取实体的实例
Aug 21 #Python
详解用Python为直方图绘制拟合曲线的两种方法
Aug 21 #Python
Python 使用指定的网卡发送HTTP请求的实例
Aug 21 #Python
You might like
PHP对象Object的概念 介绍
2012/06/14 PHP
PHP服务器页面间跳转实现方法
2012/08/02 PHP
JavaScript网页制作特殊效果用随机数
2007/05/22 Javascript
javascript各浏览器中option元素的表现差异
2011/04/07 Javascript
基于JQuery的动态删除Table表格的行和列的代码
2011/05/12 Javascript
用jQuery模拟页面加载进度条的实现代码
2011/12/19 Javascript
改变隐藏的input中value的值代码
2013/12/30 Javascript
JQuery中上下文选择器实现方法
2015/05/18 Javascript
浅谈Webpack 是如何加载模块的
2018/05/24 Javascript
详解在HTTPS 项目中使用百度地图 API
2019/04/26 Javascript
在微信小程序中渲染HTML内容3种解决方案及分析与问题解决
2020/01/12 Javascript
vue 查看dist文件里的结构(多种方式)
2020/01/17 Javascript
[01:06]DOTA2隆重推出2016冬季勇士令状 内含上海特级锦标赛互动指南
2016/02/17 DOTA
python中的函数用法入门教程
2014/09/02 Python
在Python中利用Pandas库处理大数据的简单介绍
2015/04/07 Python
Python与Redis的连接教程
2015/04/22 Python
使用Python的Django框架结合jQuery实现AJAX购物车页面
2016/04/11 Python
对numpy中array和asarray的区别详解
2018/04/17 Python
Python3实现爬取指定百度贴吧页面并保存页面数据生成本地文档的方法
2018/04/22 Python
python3中的md5加密实例
2018/05/29 Python
python basemap 画出经纬度并标定的实例
2019/07/09 Python
Python爬虫 批量爬取下载抖音视频代码实例
2019/08/16 Python
Django模板获取field的verbose_name实例
2020/05/19 Python
世界顶级足球门票网站:Live Football Tickets
2017/10/14 全球购物
市场营销专科应届生求职信
2013/11/24 职场文书
会计系中文个人求职信
2013/12/24 职场文书
军训 自我鉴定
2014/02/03 职场文书
小学端午节活动方案
2014/03/13 职场文书
教学评估实施方案
2014/03/16 职场文书
环卫工人先进事迹材料
2014/06/02 职场文书
党员群众路线剖析材料
2014/10/08 职场文书
幼儿园家长反馈意见
2015/06/03 职场文书
2016开学第一课心得体会
2016/01/23 职场文书
建立共青团委员会的请示
2019/04/02 职场文书
八年级地理课件资料及考点知识分享
2019/08/30 职场文书
CSS3 Tab动画实例之背景切换动态效果
2021/08/23 HTML / CSS