初识OpenCV-Python - 008: 形态转换
本节学习了图片的形态转换,即利用函数和图像的前景色和背景色去侵蚀或者扩张图像图形。
import cv2
import numpy as np
from matplotlib import pyplot as plt img = cv2.imread(r'C:\root\learn\python\opencvTest\img\j_point.png')
#定义内核
kernel = np.ones((5,5),np.uint8)
'''
侵蚀图像:侵蚀前景物的边界(尽量使前景物的颜色为白色)
通过kernel滑动通过图像。原始图像中的一个像素只有在内核下所有的像素都是1才被认为时1,否则或被侵蚀(变成0)
''
erosion = cv2.erode(img,kernel, iterations=1)
'''
扩张图像:扩张前景物的边界。与侵蚀相反。如果内核滑动通过图像,只要有一个图像在内核作用下为1,则为1.
'''
dilation = cv2.dilate(img, kernel, iterations=1)'''
opening先侵蚀在扩张。主要用于去除噪音
'''
opening = cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel)'''
closing:先扩张再侵蚀:用于消除前景物中的‘小洞’
'''
closing = cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel)'''
gradient:扩张图与侵蚀图之差。得到对象的轮廓
'''
gradient = cv2.morphologyEx(img, cv2.MORPH_GRADIENT, kernel)
#kernel = np.ones((20,20),np.uint8) '''
tophat: 原图像与opening之差
'''
tophat = cv2.morphologyEx(img, cv2.MORPH_TOPHAT, kernel)
'''
blackhat: closing图像与原图像之差
'''
blackhat = cv2.morphologyEx(img, cv2.MORPH_BLACKHAT,kernel)plt.subplot(241),plt.imshow(img),plt.title('Original')
plt.xticks([]),plt.yticks([])
plt.subplot(242),plt.imshow(erosion),plt.title('erosion')
plt.xticks([]),plt.yticks([])
plt.subplot(243),plt.imshow(dilation),plt.title('dilation')
plt.xticks([]),plt.yticks([])
plt.subplot(244),plt.imshow(opening),plt.title('opening')
plt.xticks([]),plt.yticks([])
plt.subplot(245),plt.imshow(closing),plt.title('closing')
plt.xticks([]),plt.yticks([])
plt.subplot(246),plt.imshow(gradient),plt.title('gradient')
plt.xticks([]),plt.yticks([])
plt.subplot(247),plt.imshow(tophat),plt.title('tophat')
plt.xticks([]),plt.yticks([])
plt.subplot(248),plt.imshow(blackhat),plt.title('blackhat')
plt.xticks([]),plt.yticks([])
plt.show()
初识OpenCV-Python - 008: 形态转换的更多相关文章
- OpenCV Python教程(3、直方图的计算与显示)
转载请详细注明原作者及出处,谢谢! 本篇文章介绍如何用OpenCV Python来计算直方图,并简略介绍用NumPy和Matplotlib计算和绘制直方图 直方图的背景知识.用途什么的就直接略过去了. ...
- OpenCV + python 实现人脸检测(基于照片和视频进行检测)
OpenCV + python 实现人脸检测(基于照片和视频进行检测) Haar-like 通俗的来讲,就是作为人脸特征即可. Haar特征值反映了图像的灰度变化情况.例如:脸部的一些特征能由矩形特征 ...
- Erlang/Elixir: 使用 OpenCV, Python 搭建图片缩略图服务器
这篇文章是在OSX上测试和运行的的, Ubuntu下的安装和配置请移步到这里 应用程序进程树, 默认 Poolboy 中初始化10个用于处理图片的 Python 工作进程(Worker) 首先安装Op ...
- 完善GDAL与OpenCV间的数据格式转换与影像分块读写
本博客为原创内容,未经博主允许禁止转载,商用,谢谢. 一.前言 关于GDAL与openCV间的数据格式转换,在我之前的博客中已有简要说明,这里,由于最近工作上经常用到openCV里的函数进行图像处理, ...
- python把汉字转换成拼音实现程序
python把汉字转换成拼音实现程序 文章一个简洁干的汉字转拼音 程序,复制下载就可以直接使用,有需要的同学可以参考一下下. #coding:utf-8 #基于python2.6 table = 'a ...
- Python datatime 格式转换,插入MySQL数据库
Python datatime 格式转换,插入MySQL数据库 zoerywzhou@163.com http://www.cnblogs.com/swje/ 作者:Zhouwan 2017-11-2 ...
- Python中文繁简体转换工具
Openccpy ___ _____ __ ___ ___ ___ _____ __ __ / __`\/\ '__`\ /'__`\/' _ `\ /'___\ /'___\/\ '__`\/\ \ ...
- Python 进制转换 二进制 八进制 十进制 十六进制
Python 进制转换 二进制 八进制 十进制 十六进制 作者:方倍工作室 地址:http://www.cnblogs.com/txw1958/p/python3-scale.html 全局定义一定不 ...
- 使用python制作时间戳转换工具
使用python制作时间戳转换工具 python 时间戳转日期 日期转时间戳 前言:作为一个程序员一般情况下,json和时间戳是常用的两个工具,我咨询过很多个朋友,他们一般都是通过在线工具对json进 ...
随机推荐
- nextJS使用注意事项
项目参考 nextJs-yicha 1. 采用方案 create-next-app.antd (1)安装 npx create-next-app --example with-ant-design m ...
- 好用的日期控件jeDate
最近做公司后台系统关于仓库的一些东西,需要根据时间范围来导出一些数据,我们使用的后台框架是基于bs的,bs也有时间控件:bootstrap-datepicker是只能选择日期的, daterangep ...
- HDU3605: Escape-二进制优化建图-最大流
目录 目录 思路: (有任何问题欢迎留言或私聊 && 欢迎交流讨论哦 目录 题意:传送门 原题目描述在最下面. \(n(n\leq 100000)\)个人\(m(m\leq 10) ...
- go modules学习
https://github.com/golang/go/wiki/Modules https://tonybai.com/2018/07/15/hello-go-module/ https://ww ...
- 剑指offer——08斐波那契数列
题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0). n<=39 有多种方法,简单的循环.递归.动态规划: class Solutio ...
- WebApi 如何 优雅的 对 输入输出 解密加密
原文:WebApi 如何 优雅的 对 输入输出 解密加密 这不是变态的想法, 这只是对现实需求的转化. 因为有密文, 所以本文不适用于浏览器到服务端的数据交换; 只适用于服务端到服务端的数据传输. 用 ...
- 在linux 或docker中使用 system.drawing.common
在dockerfile 中添加 FROM microsoft/dotnet:2.1-aspnetcore-runtime RUN apt-get update RUN apt-get install ...
- Font Awesome (Mark)
Font Awesome为您提供可缩放的矢量图标,您可以使用CSS所提供的所有特性对它们进行更改,包括:大小.颜色.阴影或者其它任何支持的效果. 一个字库,675个图标 仅一个Font Awesome ...
- animation,transition,transform小练习
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- linux 部署脚本
shell 脚本 #!/bin/bash #设置jdk环境 export JAVA_HOME=/usr/java/jdk1.8.0_45 export JRE_HOME=$JAVA_HOME/jre ...


'''
'''
'''



plt.subplot(241),plt.imshow(img),plt.title('Original')