资源简介
查阅了多个网站包括github,,没有一种简单的实现方法,此版本相对简单易行,代码中的图像是dicom图像,如有其他图像的需要,请自行修改
代码片段和文件信息
#!\Anaconda3\envs\py35 python
# -*- coding: utf-8 -*-
#!@Time : 2018/6/1 15:39
#!@Author : python
#!@File : .py
from operator import eq
import numpy as np
import pydicom as dicom
from skimage.measure import label
from skimage.measure import regionprops
from skimage.morphology import thin
import matplotlib.pyplot as plt
import cv2
def regiongrowth(orig_image seed_matrix threshold):
“““区域生长算法
# Arguments:
orig_image:待分割图像
seed_matrix:种子矩阵
threshold:生长条件,即待分割图中的像素值与目标像素值之间的可承受的差值
# Returns
seg:最终分割后的mask
num_region:分割区域的个数
# Example
regiongrow(orig_image seed_matrix 50)
“““
orig_image = np.array(orig_image dtype=np.float32) # 将图像数值格式转为float
markers = thin(seed_matrix) # 将种子所在区域缩小为一个点,后面限定区域时使用
coordinate_nonzero = markers.nonzero() # 当种子为矩阵时,获取种子点的坐标值
coordinate_nonzero = np.transpose(coordinate_nonzero) # 获取种子点的坐标值的转置
seed_value = []
for coordinate_i in coordinate_nonzero:
seed_value.append(orig_image[coordinate_i[0] coordinate_i[1]]) # 获取种子点的灰度值
size_x size_y = orig_image.shape
seg_image = np.array(np.zeros((size_x size_y)) dtype=bool) # 初始化一个bool格式的矩阵储存分割结果
for i each_seed_value in enumerate(seed_value):
all_satisfied = abs(orig_image - each_seed_value) <= threshold # 所有满足单个种子点阈值条件的像素点
seg_image = seg_image | all_satisfied # 所有满足多有种子点阈值条件的像素点
label_seg_image = label(seg_image) # 将所有连通区域打label
area_region = regionprops(label_seg_image) # 统计被标记的区域的面积分布,返回值为显示区域总数
seg = np.array(np.zeros((size_x size_y)) dtype=np.float32) # 初始化一个float格式的矩阵储存分割结果
for masker in coordinate_nonzero: # 提取maskers所在的连通区域
for each_area_region in area_region:
for coord in each_area_region.coords:
if sum(eq(coord masker)) == 2: # 若连通区域中包含masker,则保留此连通区域
for idx in each_area_region.coords:
- 上一篇:bow python实现
- 下一篇:HTMLTestRunnerNew.zip
相关资源
- python实现SGBM图像匹配算法
- python实现灰度直方图均衡化
- scrapy_qunar_one
- Python学习全系列教程永久可用
- python简明教程.chm
- 抽奖大转盘python的图形化界面
- 双边滤波器实验报告及代码python
- python +MYSQL+HTML实现21蛋糕网上商城
- Python-直播答题助手自动检测出题搜索
- OpenCV入门教程+OpenCV官方教程中文版
- Python 串口工具源码+.exe文件
- Python开发的全栈股票系统.zip
- Python操作Excel表格并将其中部分数据写
- python书籍 PDF
- 利用python绘制散点图
- python+labview+No1.vi
- 老男孩python项目实战
- python源码制作whl文件.rar
- python3.5可用的scipy
- PYTHON3 经典50案例.pptx
- 计算机科学导论-python.pdf
- python模拟鼠标点击屏幕
- windows鼠标自动点击py脚本
- 鱼c小甲鱼零基础学python全套课后题和
- Python 练习题100道
- Practical Programming 2nd Edition
- wxPython Application Development Cookbook
- python 3.6
- Python 3.5.2 中文文档 互联网唯一CHM版本
- python3.5.2.chm官方文档
评论
共有 条评论