資源簡介
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?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
評論
共有 條評論