参考:http://blog.csdn.net/yellow_red_people/article/details/53181239

定义一个5x5的结构:kernel=np.uint8(np.zeros((5,5)))

(1)腐蚀操作:

定义了一个5×5的十字形结构元素 其实是一个5x5的矩阵,我们知道在图片的腐蚀过程,对图片的每个点,使用这个结构扫描每一个点,用结构元素与其覆盖的二值图像做“与”操作,如果都为1,结果图像的该像素为1。否则为0,腐蚀处理的结果是使原来的二值图像减小一圈。

#00100
#00100
#11111
#00100
#00100

使用的函数:cv2.erode(img,kernel);

(2)膨胀操作:

使用同样的结构,对图片的每个点,使用这个结构扫描每一个点,用结构元素与其覆盖的二值图像做“与”操作,如果出现1,结果图像的该像素为1。否则为0,腐蚀处理的结果是使原来的二值图像扩大一圈。

使用的函数:cv2.dilate(img,kernel)

两张图片相减得到图片的边缘。

代码:

#encoding=utf-8  
import cv2    
import numpy as np    
#定义了一个5×5的十字形结构元素,  
#用结构元素与其覆盖的二值图像做“与”操作  
#如果都为1,结果图像的该像素为1。否则为0  
#腐蚀处理的结果是使原来的二值图像减小一圈。  
#00100  
#00100  
#11111  
#00100  
#00100  
kernel=np.uint8(np.zeros((5,5)))  
for x in range(5):  
    kernel[x,2]=1;  
    kernel[2,x]=1;  
#读入图片  
img = cv2.imread(r'E:\data\4.jpg',0)  
#腐蚀图像   
eroded=cv2.erode(img,kernel);  
#膨胀图像    
dilated = cv2.dilate(img,kernel)  
  
#将两幅图像相减获得边,第一个参数是膨胀后的图像,第二个参数是腐蚀后的图像    
result = cv2.absdiff(dilated,eroded);    
#取反  
x=0;  
y=0;  
width=result.shape[0]  
height=result.shape[1]  
while x<width:  
    y=0  
    while y<height:  
        result[x][y]=255-result[x][y]  
        y=y+1;  
    x=x+1  
cv2.imwrite("E:\data\eroded.jpg", eroded)  
cv2.imwrite("E:\data\dilated.jpg", dilated)  
cv2.imwrite("E:\data\result.jpg", result)  
  
  
cv2.waitKey(0)    
cv2.destroyAllWindows()

opencv python 图片腐蚀和膨胀相关推荐

  1. OpenCV python 图片镜像

    OpenCV python 图片镜像 输入图片 source.jpg 源代码 #!/usr/bin/env python3 # -*- coding: utf-8 -*- ""&q ...

  2. opencv python图片合成视频

    opencv python 图片合成视频 经常用到,记录一下,代码基本上都来自这里这篇博客 只是做了小小的改进,将文件的字符串排序改成了按照文件名排序,合成视频的时候不会乱. 侵删. # -*- co ...

  3. opencv 图像的腐蚀与膨胀

    形态学操作就是基于形状的一系列图像处理操作.通过将 结构元素 作用于输入图像来产生输出图像. 最基本的形态学操作有二:腐蚀与膨胀(Erosion 与 Dilation). 他们的运用广泛: 消除噪声 ...

  4. opencv中的腐蚀与膨胀(转)

    图像腐蚀和图像膨胀是图像中两种最基本形态学操作. void erode( const Mat& src, Mat& dst, const Mat& element,Point ...

  5. Opencv学习笔记(十二):图片腐蚀和膨胀操作

    文章目录 腐蚀 代码 效果 膨胀 代码 效果 开运算/闭运算 代码 腐蚀 原理:是在原图的小区域内取局部最小值.因为是二值化图,只有 0 和 255,所以小区域内有一个是 0 该像素点就为 0: 作用 ...

  6. opencv+python 图片文字识别

    # coding:utf8 import numpy as np import cv2 from PIL import Image import pytesseract import sys # 读取 ...

  7. python读取一张图片未响应_opencv python 图片读取与显示图片窗口未响应问题的解决...

    显示图像是 Opencv最基本的操作之一, imshow()函数可以实现该操作.如果使用过其他GUI框架背景,就会很自然地调用 imshow来显示一幅图像.但这个观点并不完全正确,因为图像确实会显示出 ...

  8. 基于python的opencv图像形态学处理(图像腐蚀与膨胀操作以及礼帽与黑帽)

    腐蚀与膨胀 图像的腐蚀与膨胀互为逆向操作,通常用于处理二值图像(黑白图,以黑色为底面背景),因此需要先进行二值化处理,腐蚀和膨胀通俗的理解就是,在指定大小的卷积核内,如果该卷积核内全为黑色或全为白色, ...

  9. (自己编写函数)Python + Opencv 图像形态学处理(腐蚀、膨胀、开运算、闭运算)

    原理: 形态学运算是结构元素与图像进行逻辑运算,产生新的图像的图像处理方法.二值图像B和结构元素S是定义在笛卡儿网格上的集合,网格中值为1的点是集合的元素. 腐蚀 定义: 算法: a) 用3x3的结构 ...

最新文章

  1. css样式 数据展示,教程:使用CSS设置数据样式
  2. SqlAlchemy初探
  3. android - 常用知识点以及代码片段(不断更新)
  4. [C++STL]常用查找算法
  5. 化工原理物性参数_化工原理知识点总结整理
  6. 前端学习(1032):jquery插件-瀑布流
  7. 计算机统考测试,计算机统考专业测试题.doc
  8. 二叉链表的建立和遍历 完整的前,中,后和层序建立和遍历
  9. UVA11384 Help is needed for Dexter【数学】
  10. 简单小知识 记录一下 慢慢更新积累
  11. C#判断对象是不是数组
  12. Java实现计算矩阵的伴随矩阵、逆矩阵
  13. Linux与windows共享文件的神器:Samba
  14. php网站页面显示源码,用PHP显示网站的源代码
  15. 商务洽谈(谈判)步骤及技巧
  16. 模拟手机预览(非F12)
  17. Android音视频点/直播模块开发实践总结-zz
  18. Perma.cc:永不消逝的网页
  19. 土地资源管理本科毕业论文有哪些选题推荐?
  20. SHOI2002 百事世界杯之旅

热门文章

  1. 条件编译在内核中的使用(技巧1)
  2. python struct
  3. 杭电2030java做法_杭电ACM2040java做法
  4. gateway java_基于SpringCloudGateway 实现的网关
  5. c# 读取空行_c# – 从Excel读取时如何计算空行
  6. 手机python软件怎么创建项目_创建成功的 Python 项目
  7. matlab设计pss参考信号,[OAI][Layer1]PSS/SSS procedure
  8. Typora开始收费,介绍几款免费的MarkDown编辑器
  9. 程序员写代码崩溃,路过的暖心美团骑手:我帮你看看!
  10. 每日一皮:当写的程序出现bug时,就是这么奇妙...