• 大小: 4.37MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-09-16
  • 语言: Python
  • 标签: 细胞分割  

资源简介

python和matlab两个版本,本代码采用圆度检测的方法,筛选粘连细胞,并对粘连细胞进行分割。

资源截图

代码片段和文件信息

# -*- coding: utf-8 -*-
import cv2
import matplotlib.pyplot as plt
import numpy as np
import scipy
from matplotlib.patches import Circle
from PIL import Image
from skimage import filters
from skimage.measure import label regionprops
from skimage.morphology import closing dilation disk opening square

plt.close(‘all‘)
#%%
filename = ‘3.jpg‘
img_raw = Image.open(filename)
img_raw = img_raw.resize((14401080))
img_rgb = np.array(img_raw dtype=np.float32) / 255.0
img_rgb = img_rgb[: :1080 :]
h w = img_rgb.shape[0:2]
plt.figure()
plt.imshow(img_rgb)
plt.title(‘Original Image‘)
plt.axis(‘off‘)
#%% 提取ROI
img_hsv = cv2.cvtColor(img_rgb cv2.COLOR_BGR2HSV)
img_gray = img_hsv[... 2]
mask = img_gray > 0.5
img_mask = img_rgb * np.dstack((mask mask mask))

stats = regionprops(label(mask))
bbox = stats[0].bbox
roi_1 = img_mask[bbox[0]:+bbox[2] bbox[1]:bbox[3] :]

plt.figure()
plt.imshow(roi_1)
plt.title(‘Circle ROI‘)
plt.axis(‘off‘)

b_h = int((bbox[2] - bbox[0]) * (1 - np.sqrt(2) / 2) / 2)
b_w = int((bbox[3] - bbox[1]) * (1 - np.sqrt(2) / 2) / 2)
roi_2 = roi_1[b_h:-b_h b_w:-b_w :]

plt.figure()
plt.imshow(roi_2)
plt.title(‘Rectangle ROI‘)
plt.axis(‘off‘)
#%% 二值化
roi_gray = cv2.cvtColor(roi_2 cv2.COLOR_BGR2GRAY)
plt.figure()
plt.imshow(roi_gray cmap=‘gray‘)
plt.title(‘Gray Color‘)
plt.axis(‘off‘)

threshold = filters.threshold_otsu(roi_gray)
roi_bin = (roi_gray < threshold) * 1.0  # 二值化
plt.figure()
plt.imshow(roi_bin cmap=‘gray‘)
plt.title(‘Binary Reuslt‘)
plt.axis(‘off‘)
#%% 形态操作
roi_pad = np.pad(roi_bin (1 1) ‘constant‘ constant_values=1)
for i in range(roi_pad.shape[0]):
    if np.sum(roi_pad[i 1:20]) == 0:
        roi_pad[i 0] = 0
        break
roi_fill = scipy.ndimage.binary_fill_holes(roi_pad)
roi_fill = roi_fill[1:-1 1:-1]
plt.figure()
plt.imshow(roi_fill cmap=‘gray‘)
plt.title(‘Fill Holes Reuslt‘)
plt.axis(‘off‘)

roi_open = opening(roi_fill square(6))
plt.figure()
plt.imshow(roi_open cmap=‘gray‘)
plt.title(‘Image Opening Reuslt‘)
plt.axis(‘off‘)
#%% 细胞计数
plt.figure()
plt.imshow(roi_2)
plt.title(‘Detect Reuslt‘)
plt.axis(‘off‘)
ax = plt.gca()
stats = regionprops(label(roi_open neighbors=4) coordinates=‘xy‘)

areas = np.zeros((len(stats) 1))
centers = np.zeros((len(stats) 2))
radius = np.zeros((len(stats) 1))
for i in range(len(stats)):
    centers[i :] = stats[i].centroid
    areas[i] = stats[i].area
    radius[i] = (stats[i].major_axis_length + stats[i].minor_axis_length) / 4.0
    patch = Circle((centers[i 1] centers[i 0]) radius[i] * 1.2 color=‘red‘ fill=False)
    ax.add_patch(patch)

cell_num = len(stats)
area_mean = np.mean(areas)
area_std = np.std(areas)
radius_mean = np.mean(radius)

print(‘细胞个数:{:d}‘.format(cell_num))
print(‘细胞平均面积,{:.2f}‘.format(area_mean))
print(‘细胞平均半径,{:.2f}‘.format(radius_mean))

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2019-03-31 15:47  粘连细胞分割\
     文件      112255  2019-03-26 17:12  粘连细胞分割\1.jpg
     文件      139436  2019-03-26 17:12  粘连细胞分割\2.jpg
     文件      121746  2019-03-26 17:12  粘连细胞分割\3.jpg
     目录           0  2019-03-31 15:40  粘连细胞分割\__pycache__\
     文件        1420  2019-03-31 15:40  粘连细胞分割\__pycache__\utils.cpython-35.pyc
     文件        2966  2019-03-31 10:39  粘连细胞分割\main.py
     文件        4121  2019-03-31 15:45  粘连细胞分割\main2.py
     文件        1068  2019-03-31 15:40  粘连细胞分割\utils.py
     文件         106  2019-03-31 15:47  粘连细胞分割\参考资料.txt
     目录           0  2019-03-29 20:50  粘连细胞分割\新图\
     文件      112255  2019-03-26 17:12  粘连细胞分割\新图\QQ图片20190326171300.jpg
     文件      139436  2019-03-26 17:12  粘连细胞分割\新图\QQ图片20190326171312.jpg
     文件      121746  2019-03-26 17:12  粘连细胞分割\新图\QQ图片20190326171318.jpg
     文件       41250  2019-03-26 17:12  粘连细胞分割\新图\QQ图片20190326171334.jpg
     文件       42521  2019-03-26 17:12  粘连细胞分割\新图\QQ图片20190326171342.jpg
     文件     1327158  2018-06-11 10:00  粘连细胞分割\新图\blood.bmp
     文件       22847  2019-03-25 21:54  粘连细胞分割\新图\h1.jpg
     文件      135594  2019-03-25 21:55  粘连细胞分割\新图\h2.jpg
     文件      141080  2019-03-25 21:56  粘连细胞分割\新图\h4.jpg
     文件       25833  2019-03-25 21:11  粘连细胞分割\新图\th1.jpg
     文件       32238  2019-03-25 21:40  粘连细胞分割\新图\timg.jpg
     文件     3323191  2019-03-26 20:55  粘连细胞分割\红细胞识别系统的设计与实现.pdf

评论

共有 条评论

相关资源