文章目录

  • 腐蚀
    • 代码
    • 效果
  • 膨胀
    • 代码
    • 效果
  • 开运算/闭运算
    • 代码

腐蚀

原理:是在原图的小区域内取局部最小值。因为是二值化图,只有 0 和 255,所以小区域内有一个是 0 该像素点就为 0:

作用:图像中的物体变小

代码

erode(src, kernel, dst=None, anchor=None, iterations=None, borderType=None, borderValue=None)#腐蚀函数
import cv2
import numpy as np# 腐蚀
image = cv2.imread('2.png')
kernel1 = np.ones((3,3),np.uint8)  # 腐蚀单元
kernel2 = np.ones((5,5),np.uint8)
kernel3 = np.ones((7,7),np.uint8)erosion1 = cv2.erode(image, kernel1)  # 腐蚀函数
erosion2 = cv2.erode(image, kernel2)
erosion3 = cv2.erode(image, kernel3)cv2.imshow("original", image)
cv2.imshow("erosion1", erosion1)
cv2.imshow("erosion2", erosion2)
cv2.imshow("erosion3", erosion3)cv2.waitKey(0)

效果

膨胀

原理:膨胀与腐蚀相反,取的是局部最大值。
作用:先腐蚀后膨胀,连接两个分开的物体,图像中的物体变大。

代码

import cv2
import numpy as np# 腐蚀
image = cv2.imread('3.jpg')
kernel1 = np.ones((3, 3), np.uint8)     # 3个不同尺度的膨胀单元
kernel2 = np.ones((5, 5), np.uint8)
kernel3 = np.ones((9, 9), np.uint8)dilation1 = cv2.dilate(image, kernel1)    # 膨胀函数
dilation2 = cv2.dilate(image, kernel2)
dilation3 = cv2.dilate(image, kernel3)cv2.imshow("original", image)
cv2.imshow("dilation1", dilation1)
cv2.imshow("dilation2", dilation2)
cv2.imshow("dilation3", dilation3)cv2.waitKey(0)

效果

开运算/闭运算

开运算就是先腐蚀后膨胀,可以直接通过opencv的morphologyEx进行处理,cv2.MORPH_OPEN指定开运算

代码

开运算

import cv2
image = cv2.imread('2.png')
kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (7, 7))
opening = cv2.morphologyEx(image, cv2.MORPH_OPEN, kernel)
cv2.imshow('original', image)
cv2.imshow('deal', opening)
cv2.waitKey(0)

闭运算
闭运算就是先膨胀后腐蚀,可以直接调用morphologyEx,cv2.MORPH_CLOSE指定闭运算

import cv2
import numpy as np
image = cv2.imread('2.png')
close_img = cv2.morphologyEx(image,cv2.MORPH_CLOSE,kernel=np.ones((7,7),np.uint8))
cv2.imshow('original', image)
cv2.imshow('deal', close_img)
cv2.waitKey(0)

Opencv学习笔记(十二):图片腐蚀和膨胀操作相关推荐

  1. OpenCV学习笔记(十二)——图像分割与提取

    在图像处理的过程中,经常需要从图像中将前景对象作为目标图像分割或者提取出来.例如,在视频监控中,观测到的是固定背景下的视频内容,而我们对背景本身并无兴趣,感兴趣的是背景中出现的车辆.行人或者其他对象. ...

  2. opencv学习笔记十二:梯度算子

    [1]Robert算子: || =  由于平方和不便于计算,故近似为绝对值形式: || =| | 实际应用中,经常采用的是另一种近似梯度: |

  3. OpenCV学习笔记(二十六)——小试SVM算法ml OpenCV学习笔记(二十七)——基于级联分类器的目标检测objdect OpenCV学习笔记(二十八)——光流法对运动目标跟踪Video Ope

    OpenCV学习笔记(二十六)--小试SVM算法ml 总感觉自己停留在码农的初级阶段,要想更上一层,就得静下心来,好好研究一下算法的东西.OpenCV作为一个计算机视觉的开源库,肯定不会只停留在数字图 ...

  4. OpenCV学习笔记(二十一)——绘图函数core OpenCV学习笔记(二十二)——粒子滤波跟踪方法 OpenCV学习笔记(二十三)——OpenCV的GUI之凤凰涅槃Qt OpenCV学习笔记(二十

    OpenCV学习笔记(二十一)--绘图函数core 在图像中,我们经常想要在图像中做一些标识记号,这就需要绘图函数.OpenCV虽然没有太优秀的GUI,但在绘图方面还是做得很完整的.这里就介绍一下相关 ...

  5. opencv学习笔记(二):基于肤色的人手检测

    opencv学习笔记(二):基于肤色的人手检测 原文:http://blog.csdn.net/wzmsltw/article/details/50849810 先写了人手的检测程序,下一步基于检测程 ...

  6. OpenCV学习笔记(二):3种常用访问图像中像素的方式

    OpenCV学习笔记(二):3种常用访问图像中像素的方式 #include <opencv2/opencv.hpp>using namespace cv; using namespace ...

  7. opencv学习笔记之二值化

    opencv学习笔记之二值化 1.什么是二值化 二值化,从名词意义上可以看出来,是将一共物体转化成两个值.二值即:0或255.即一个白色一个黑色.即一个图片经过二值化之后会显示成白色和黑色的形式. 2 ...

  8. python做直方图-python OpenCV学习笔记实现二维直方图

    本文介绍了python OpenCV学习笔记实现二维直方图,分享给大家,具体如下: 官方文档 – https://docs.opencv.org/3.4.0/dd/d0d/tutorial_py_2d ...

  9. 吴恩达《机器学习》学习笔记十二——机器学习系统

    吴恩达<机器学习>学习笔记十二--机器学习系统 一.设计机器学习系统的思想 1.快速实现+绘制学习曲线--寻找重点优化的方向 2.误差分析 3.数值估计 二.偏斜类问题(类别不均衡) 三. ...

最新文章

  1. STM32 资料整理贴(更新到10年1月)[转]
  2. java下实现调用oracle的存储过程和函数
  3. 开发出高性能的网站系列文章
  4. [回归分析][14]--Logistic回归
  5. 面向多星多任务的大数据处理系统设计
  6. c c++ 函数内数组初值_C/C Plus Plus中的函数
  7. 用websocket技术开发的web聊天系统
  8. er图一对多的关系怎么体现_抠图高级技法之混合剪切篇
  9. Python- and or 的短路原则
  10. idea mvn命令
  11. CSS-DIV页面布局
  12. java泊松分布随机数,C语言生成泊松分布随机数
  13. HDU 2246 神题?一千多行
  14. BUUCTF——密码学——old-fashion
  15. javaweb基础打卡17
  16. Windows Workflow Foundation中实现人工活动的demo,按照XPDL规范的实现
  17. myeclipse自定义背景颜色
  18. Centos7安装docker并更改阿里云下载镜像地址(附带windows10安装docker教程)
  19. 基于MFC的圆环的消隐实现
  20. MATLAB中nargin和nargout的妙用

热门文章

  1. MySQL学习笔记之innodb_max_dirty_pages_pct
  2. 认真的做羞羞的事 一颗种子的自我分享
  3. 平均10870元!2023一季度居民可支配收入公布(文末附最新招聘岗位)
  4. web验证码的生成以及验证
  5. Linux 运维工程师面试问答录(推荐阅读)
  6. [hge] distort.h distort.cpp
  7. 2019.03.24【SPOJ-GSS1】Can you answer these queries I(猫树)
  8. 【UE4 shader】扰动水流Shader
  9. 【C语言初阶】带你轻松玩转所有常用操作符(1) ——算数操作符,移位操作符,位操作符
  10. sfm三维重建源码_OpenMVG源码阅读小记