opencv python 图片腐蚀和膨胀
参考: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 图片腐蚀和膨胀相关推荐
- OpenCV python 图片镜像
OpenCV python 图片镜像 输入图片 source.jpg 源代码 #!/usr/bin/env python3 # -*- coding: utf-8 -*- ""&q ...
- opencv python图片合成视频
opencv python 图片合成视频 经常用到,记录一下,代码基本上都来自这里这篇博客 只是做了小小的改进,将文件的字符串排序改成了按照文件名排序,合成视频的时候不会乱. 侵删. # -*- co ...
- opencv 图像的腐蚀与膨胀
形态学操作就是基于形状的一系列图像处理操作.通过将 结构元素 作用于输入图像来产生输出图像. 最基本的形态学操作有二:腐蚀与膨胀(Erosion 与 Dilation). 他们的运用广泛: 消除噪声 ...
- opencv中的腐蚀与膨胀(转)
图像腐蚀和图像膨胀是图像中两种最基本形态学操作. void erode( const Mat& src, Mat& dst, const Mat& element,Point ...
- Opencv学习笔记(十二):图片腐蚀和膨胀操作
文章目录 腐蚀 代码 效果 膨胀 代码 效果 开运算/闭运算 代码 腐蚀 原理:是在原图的小区域内取局部最小值.因为是二值化图,只有 0 和 255,所以小区域内有一个是 0 该像素点就为 0: 作用 ...
- opencv+python 图片文字识别
# coding:utf8 import numpy as np import cv2 from PIL import Image import pytesseract import sys # 读取 ...
- python读取一张图片未响应_opencv python 图片读取与显示图片窗口未响应问题的解决...
显示图像是 Opencv最基本的操作之一, imshow()函数可以实现该操作.如果使用过其他GUI框架背景,就会很自然地调用 imshow来显示一幅图像.但这个观点并不完全正确,因为图像确实会显示出 ...
- 基于python的opencv图像形态学处理(图像腐蚀与膨胀操作以及礼帽与黑帽)
腐蚀与膨胀 图像的腐蚀与膨胀互为逆向操作,通常用于处理二值图像(黑白图,以黑色为底面背景),因此需要先进行二值化处理,腐蚀和膨胀通俗的理解就是,在指定大小的卷积核内,如果该卷积核内全为黑色或全为白色, ...
- (自己编写函数)Python + Opencv 图像形态学处理(腐蚀、膨胀、开运算、闭运算)
原理: 形态学运算是结构元素与图像进行逻辑运算,产生新的图像的图像处理方法.二值图像B和结构元素S是定义在笛卡儿网格上的集合,网格中值为1的点是集合的元素. 腐蚀 定义: 算法: a) 用3x3的结构 ...
最新文章
- css样式 数据展示,教程:使用CSS设置数据样式
- SqlAlchemy初探
- android - 常用知识点以及代码片段(不断更新)
- [C++STL]常用查找算法
- 化工原理物性参数_化工原理知识点总结整理
- 前端学习(1032):jquery插件-瀑布流
- 计算机统考测试,计算机统考专业测试题.doc
- 二叉链表的建立和遍历 完整的前,中,后和层序建立和遍历
- UVA11384 Help is needed for Dexter【数学】
- 简单小知识 记录一下 慢慢更新积累
- C#判断对象是不是数组
- Java实现计算矩阵的伴随矩阵、逆矩阵
- Linux与windows共享文件的神器:Samba
- php网站页面显示源码,用PHP显示网站的源代码
- 商务洽谈(谈判)步骤及技巧
- 模拟手机预览(非F12)
- Android音视频点/直播模块开发实践总结-zz
- Perma.cc:永不消逝的网页
- 土地资源管理本科毕业论文有哪些选题推荐?
- SHOI2002 百事世界杯之旅
热门文章
- 条件编译在内核中的使用(技巧1)
- python struct
- 杭电2030java做法_杭电ACM2040java做法
- gateway java_基于SpringCloudGateway 实现的网关
- c# 读取空行_c# – 从Excel读取时如何计算空行
- 手机python软件怎么创建项目_创建成功的 Python 项目
- matlab设计pss参考信号,[OAI][Layer1]PSS/SSS procedure
- Typora开始收费,介绍几款免费的MarkDown编辑器
- 程序员写代码崩溃,路过的暖心美团骑手:我帮你看看!
- 每日一皮:当写的程序出现bug时,就是这么奇妙...