栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

膨胀、腐蚀、开闭运算

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

膨胀、腐蚀、开闭运算

因为形态学运算会对建模效果产生很大影响 所以如何更好地把形态学算法运用到岩心图像中是我所做工作的前置任务之一。

这里先对二维图像进行以上形态学运算 等到工作后期会从二维图像推广到三维图像。到时候再续更。

代码部分

第一步 这里先对图像进行分割 分割阈值选取66 阈值是通过Otsu方法得到的 。接下来定义卷积核 我们接下来的形态学运算用到的卷积核都是在这里定义的。

import numpy as np
import cv2 
import copy
img cv2.imread( E:/shale10053.bmp )#读取图片
img_gray cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)#灰度化
ret, img_b cv2.threshold(img_gray, 66, 255, cv2.THRESH_BINARY)#二值化
#参数MORPH_CROSS交叉形 3x3大小
conv_kernel cv2.getStructuringElement(cv2.MORPH_CROSS,(3, 3))#生成5x5的全1矩阵.矩形 MORPH_RECT 交叉形 MORPH_CROSS 椭圆形 MORPH_ELLIPSE 

第二步 对分割完成后的二值图像进行膨胀、腐蚀、开闭运算。其中开运算可分解为 先膨胀后腐蚀 闭运算可分解为 先腐蚀后膨胀 。

cv2.imshow( gray ,img_gray)#显示灰度图像
cv2.imshow( bin_img , img_b )#显示二值图片
img_erosion cv2.erode(img_b, conv_kernel)#腐蚀运算
img_dilation cv2.dilate(img_b, conv_kernel)#膨胀运算
img_opening cv2.morphologyEx(img_b, cv2.MORPH_OPEN, conv_kernel)#开运算,先腐蚀再膨胀
img_closing cv2.morphologyEx(img_b, cv2.MORPH_CLOSE, conv_kernel)#闭运算 先膨胀再腐蚀
cv2.imshow( erosion , img_erosion1)#显示腐蚀运算图片
cv2.imshow( dilation , img_dilation1)#显示膨胀图片
cv2.imshow( opening ,img_opening)#显示开运算图像
cv2.imshow( closing ,img_closing)#显示闭运算图像
cv2.waitKey()
cv2.destroyAllWindows()

运行结果如下图所示

 可以看出 形态学运算是对白色部分做运算的 这里我还不知道怎么指定组分 但是并不影响后期用处理三维模型的时候对指定组分进行三维形态学运算

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/268141.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号