细胞图像处理
细胞分割方法分析
细胞分割方法的数学原理与实现
1. 颜色空间转换 (RGB → LAB)
首先将RGB图像转换为LAB颜色空间:
1 |
|
RGB到LAB的数学转换过程:
步骤1: RGB到XYZ的转换
对于标准RGB(sRGB)空间,首先需要进行伽马校正,将非线性RGB转换为线性RGB:
$$R_{linear} = \begin{cases}
\frac{R_{sRGB}}{12.92}, & \text{if } R_{sRGB} \leq 0.04045 \
\left(\frac{R_{sRGB} + 0.055}{1.055}\right)^{2.4}, & \text{if } R_{sRGB} > 0.04045
\end{cases}$$
同理计算$G_{linear}$和$B_{linear}$。
然后使用标准转换矩阵将线性RGB转换为XYZ:
$$\begin{bmatrix} X \ Y \ Z \end{bmatrix} = \begin{bmatrix}
0.4124564 & 0.3575761 & 0.1804375 \
0.2126729 & 0.7151522 & 0.0721750 \
0.0193339 & 0.1191920 & 0.9503041
\end{bmatrix} \begin{bmatrix} R_{linear} \ G_{linear} \ B_{linear} \end{bmatrix}$$
步骤2: XYZ到LAB的转换
使用D65白点参考值$(X_n, Y_n, Z_n) = (0.95047, 1.00000, 1.08883)$:
首先计算中间变量:
$$x = \frac{X}{X_n}, y = \frac{Y}{Y_n}, z = \frac{Z}{Z_n}$$
然后应用非线性变换:
$$f(t) = \begin{cases}
t^{\frac{1}{3}}, & \text{if } t > \left(\frac{6}{29}\right)^3 \
\frac{1}{3}\left(\frac{29}{6}\right)^2 t + \frac{4}{29}, & \text{if } t \leq \left(\frac{6}{29}\right)^3
\end{cases}$$
最后计算LAB值:
$$L = 116 \cdot f(y) - 16$$
$$a = 500 \cdot [f(x) - f(y)]$$
$$b = 200 \cdot [f(y) - f(z)]$$
其中L的范围是[0, 100],a和b的范围通常是[-128, 127]。
2. 细胞核分割
提取LAB空间的通道:
1 |
|
Otsu阈值法的数学原理:
Otsu方法通过最大化类间方差来寻找最佳阈值。对于灰度图像,假设像素值范围为[0, L-1]:
计算图像的归一化直方图 $p_i = \frac{n_i}{N}$,其中$n_i$是灰度值为i的像素数,N是总像素数。
对于每个可能的阈值t,计算两个类的概率:
$$\omega_0(t) = \sum_{i=0}^{t} p_i$$
$$\omega_1(t) = \sum_{i=t+1}^{L-1} p_i = 1 - \omega_0(t)$$计算两个类的均值:
$$\mu_0(t) = \frac{\sum_{i=0}^{t} i \cdot p_i}{\omega_0(t)}$$
$$\mu_1(t) = \frac{\sum_{i=t+1}^{L-1} i \cdot p_i}{\omega_1(t)}$$计算总体均值:
$$\mu_T = \sum_{i=0}^{L-1} i \cdot p_i$$计算类间方差:
$$\sigma_B^2(t) = \omega_0(t) \cdot \omega_1(t) \cdot [\mu_0(t) - \mu_1(t)]^2$$最佳阈值是使类间方差最大的阈值:
$$t^* = \arg\max_{0 \leq t < L} {\sigma_B^2(t)}$$
在代码中的实现:
1 |
|
3. 形态学操作
小物体移除:
1 |
|
这一步使用连通组件分析,移除面积小于50像素的连通区域。连通组件分析的数学表示为:
对于二值图像$I$,定义连通组件$C$为满足以下条件的像素集合:
- 对于任意$p, q \in C$,存在一条路径$p = p_0, p_1, …, p_n = q$,使得对于所有$0 \leq i < n$,$p_i$和$p_{i+1}$是相邻的,且$I(p_i) = I(p_{i+1}) = 1$
- 不存在$p \in C$和$q \notin C$使得$p$和$q$相邻且$I(q) = 1$
然后移除所有面积小于阈值的连通组件:
$$I’(p) = \begin{cases}
0, & \text{if } p \in C \text{ and } |C| < \text{min_size} \
I(p), & \text{otherwise}
\end{cases}$$
形态学闭运算:
1 |
|
闭运算是膨胀后接腐蚀的组合操作。对于二值图像$I$和结构元素$B$:
膨胀操作定义为:
$$I \oplus B = {z \in \mathbb{Z}^2 | (B_z \cap I) \neq \emptyset}$$
其中$B_z$是将$B$平移到点$z$的结果。
腐蚀操作定义为:
$$I \ominus B = {z \in \mathbb{Z}^2 | B_z \subseteq I}$$
闭运算则定义为:
$$I \bullet B = (I \oplus B) \ominus B$$
在这里,结构元素$B$是半径为2的圆盘,可以表示为:
$$B = {(x, y) \in \mathbb{Z}^2 | x^2 + y^2 \leq 4}$$
4. 细胞质分割
与细胞核分割类似,但使用b通道并取大于阈值的区域:
1 |
|
5. 细胞质掩码优化
1 |
|
这里使用了更大的最小尺寸(100)和更大的结构元素(半径为3的圆盘):
$$B_{cytoplasm} = {(x, y) \in \mathbb{Z}^2 | x^2 + y^2 \leq 9}$$
6. 整体细胞掩码创建
1 |
|
逻辑或运算的数学表示:
$$\text{cell_mask}(x, y) = \text{nuclei_mask}(x, y) \lor \text{cytoplasm_mask}(x, y)$$
其中$\lor$表示逻辑或操作。
最后的闭运算使用半径为5的圆盘结构元素:
$$B_{cell} = {(x, y) \in \mathbb{Z}^2 | x^2 + y^2 \leq 25}$$
这个更大的结构元素能够填充细胞内部的空洞,并平滑细胞边界,确保细胞的完整性和连续性。
```