利用cv2.morphologyEx提取图像边界
cv2.morphologyEx(image, cv2.MORPH_GRADIENT, SE)可以参考这篇博客
cv2.MORPH_GRADIENT:形态学梯度(morph-grad),可以突出团块(blob)的边缘, 保留物体的边缘轮廓。
#coding:utf-8
import SimpleITK as sitk
import numpy as np
import cv2 def edge(image):
SE = cv2.getStructuringElement(cv2.MORPH_RECT, (3, 3))
img_grad = cv2.morphologyEx(image, cv2.MORPH_GRADIENT, SE)
return img_grad def save(x, path):
predict_seg = sitk.GetImageFromArray(x)
sitk.WriteImage(predict_seg, path)
def read_nii(path):
image = sitk.ReadImage(path)
img_num = sitk.GetArrayFromImage(image)
return img_num
if __name__ == "__main__":
path = r"D:\myProject\HDC_vessel_seg\datasets\nii\vessel_1.nii"
img_num = read_nii(path)
img_num = img_num[20:84,...]
slices = img_num.shape[0]
result = np.zeros(img_num.shape)
for i in range(slices):
sli = img_num[i:i+1, ...]
s = sli[0,...]
slice = edge(s)
result[i,...] = slice
save(result, path.replace("vessel_1", "edge_vessel_1"))
save(img_num, path.replace("vessel_1", "pre_vessel_1"))
print(slices)
结果:
原始图像:

提取边缘:

利用cv2.morphologyEx提取图像边界的更多相关文章
- 机器学习进阶-图像形态学操作-开运算与闭运算 1.cv2.morphologyEx(进行各类形态学变化) 2.op=cv2.MORPH_OPEN(先腐蚀后膨胀) 3.op=cv2.MORPH_CLOSE(先膨胀后腐蚀)
1.cv2.morphologyEx(src, op, kernel) 进行各类形态学的变化 参数说明:src传入的图片,op进行变化的方式, kernel表示方框的大小 2.op = cv2.MO ...
- python-opencv在有噪音的情况下提取图像的轮廓
对于一般的图像提取轮廓,这篇博文介绍了一个很好的方法,但是对于有噪声的图像,并不能很好地捕获到目标物体. 比如对于我的鼠标,提取的轮廓效果并不好,因为噪声很多: 所以本文增加了去掉噪声的部分. 首先加 ...
- matlab 提取图像轮廓(图像边缘提取)
利用edge()函数提取图像轮廓,绘制出对象的边界和提取边界坐标信息,matlab实现代码如下: close all;clear all;clc; % 提取图像轮廓,提取图像边缘 I = imread ...
- ArcGIS提取影像边界
基于ArcGIS有多重办法可以提取影像边界,比如常用的有以下几种方式: a.System Toolboxes --> 3D Analyst Tools --> Conversion --& ...
- MATLAB·提取图像中多个目标
基于matlab工具箱提取图像中的多目标特征(代码如下): 代码前面部分为提取图像的边界信息,调用了后面的遍历函数Pixel_Search,函数实现方法见后~ %%ROI Testing close ...
- 原来CNN是这样提取图像特征的。。。
对于即将到来的人工智能时代,作为一个有理想有追求的程序员,不懂深度学习(Deep Learning)这个超热的领域,会不会感觉马上就out了?作为机器学习的一个分支,深度学习同样需要计算机获得强大的学 ...
- 机器学习进阶-目标跟踪-KCF目标跟踪方法 1.cv2.multiTracker_create(构造选框集合) 2. cv2.TrackerKCF_create(获得KCF追踪器) 3. cv2.resize(变化图像大小) 4.cv2.selectROI(在图像上框出选框)
1. tracker = cv2.multiTracker_create() 获得追踪的初始化结果 2.cv2.TrackerKCF_create() 获得KCF追踪器 3.cv2.resize(fr ...
- 机器学习进阶-背景建模-(帧差法与混合高斯模型) 1.cv2.VideoCapture(进行视频读取) 2.cv2.getStructureElement(构造形态学的卷积) 3.cv2.createBackgroundSubtractorMOG2(构造高斯混合模型) 4.cv2.morpholyEx(对图像进行形态学的变化)
1. cv2.VideoCapture('test.avi') 进行视频读取 参数说明:‘test.avi’ 输入视频的地址2. cv2.getStructureElement(cv2.MORPH_E ...
- 【python-opencv】18-图像梯度+图像边界
效果图: *一阶导数与Soble算子 *二阶导数与拉普拉斯算子 定义:把图片想象成连续函数,因为边缘部分的像素值是与旁边像素明显有区别的,所以对图片局部求极值,就可以得到整幅图片的边缘信息了. 不过图 ...
- VGG16提取图像特征 (torch7)
VGG16提取图像特征 (torch7) VGG16 loadcaffe torch7 下载pretrained model,保存到当前目录下 th> caffemodel_url = 'htt ...
随机推荐
- app专项测试:测试内容
app专项测试:测试内容 除了app的UI功能测试,平时听说比较多的就是app专项测试了, app专项测试主要包含以下内容: 1,流量测试 :app静态测试(耗时.流量.内存.图片大小) 2,弱网测试 ...
- 【Spring-Cloud】Nacos2.0.3 单系统集群部署问题汇总
1.强制要求JDK8版本 且 64位 C:\Users\Administrator\Desktop\Nacos-Server\Nacos-2.0.3-8848\bin>java -version ...
- 贝塔分布 beta分布的累积分布函数(CDF)计算 —— 如何使用二项式分布表示beta分布的概率累积函数
贝塔分布 beta分布的累积分布函数(CDF)的计算公式: 计算beta分布的累积分布函数(CDF)是需要计算积分的,但是最近发现另一种计算方法,即,使用二项式分布计算beta分布的概率累积函数. b ...
- 智能机器人(双足机器人、四足机器人、人形机器人humanoid)与自动驾驶技术/FSD(Full Self-Drive)“完全自动驾驶”在技术领域的相关性?
前文: https://www.cnblogs.com/devilmaycry812839668/p/18079439 前文中已经说了,对于能力强大的机器人公司来说,软件和AI技术并不是难点,真正的难 ...
- AI围棋项目:KataGo
网站地址: https://katagotraining.org/ 项目地址: https://github.com/lightvector/KataGo
- 大语言模型(LLM)运行报错:module ‘streamlit‘ has no attribute ‘chat_message‘
参考: https://blog.csdn.net/weixin_45748921/article/details/134645308 问题在于版本不匹配,深究一下为什么各个版本软件不匹配,发现原因是 ...
- vscode远程连接远程主机上的docker —— 设置命令 —— -p 5001:5001
突然有这么一个需求,就是使用windows上vscode远程连接到远端linux主机上的docker容器上做开发,各种配置后发现总是在远端主机上创建project时候失败,最后总是在创建远端主机上do ...
- 分享某Python下的mpi教程 —— A Python Introduction to Parallel Programming with MPI 1.0.2 documentation ( 续 #2 )
接前文: 分享某Python下的mpi教程 -- A Python Introduction to Parallel Programming with MPI 1.0.2 documentation ...
- NVIDIA显卡原生管理查询功能nvidia-smi的部分使用功能
本文是使用NVIDIA原生管理工具查询NVIDIA显卡使用情况的一些记录(使用远程管理工具的效率没有使用原生管理接口nvml的效率高,有效率需求者建议使用python版本捆绑的nvml库,具体:htt ...
- SpringBoot整合RabbitMQ 通俗易懂 超详细 【内含案例】
SpringBoot结合RabbitMq SpringBoot 框架部署 HelloWorld 简单模式 Topic 通配符模式 一.SpringBoot 框架部署 1.创建Maven工程(我用的ID ...