我正在整理一个 OpenCV 脚本来分析免疫组织化学染色的心脏组织。我们的染色程序使在其质膜中表达某些蛋白质的细胞类型在光学显微镜下可见色素,我们用它来拍摄图像。
到目前为止,我已经成功地使用 OpenCV 社区 (http://opencv-python-tutroals.readthedocs.org/en/latest/py_tutorials/py_imgproc/py_colorspaces/py_colorspaces.html) 提供的常用颜色分割脚本的修改版本,根据颜色范围将图像分割到不同的层。
原始图像的屏幕截图:
显示的 B 细胞层:
此时,我想计算 B 细胞与未染色组织的面积比。此操作提示根据颜色范围提取背景单元层:
显然,这些结果还有很多不足之处。
有没有人知道如何解决这个问题?再次,我想分割背景组织(透明)层,不幸的是,它在纹理上相当像海绵。我的目标是创建一个代表未染色组织区域的面具。 似乎需要一种模糊技术来填补组织中的空白,但这种方法所带来的准确性损失是显而易见的。
最佳答案
在示例图像中, channel 看起来高度相关。如果您对图像应用去相关拉伸(stretch),您应该能够看到更多细节。 Here在我的博客文章中,我在 C++ 中实现了去相关拉伸(stretch)(不幸的是不是 Python)。
使用博客中的示例代码,我执行了以下操作来分割单元格区域:
float mu[3] = {128.0f, 128.0f, 128.0f};
float sd[3] = {128.0f, 5.0f, 5.0f};
Mat mean = Mat(3, 1, CV_32F, mu);
Mat sigma = Mat(3, 1, CV_32F, sd);
我不知道这个分割有多好。我认为可以通过尝试上述参数的不同值(平均值、西格玛、结构元素大小和图像被侵 eclipse 的次数)来获得更好的分割。
(以下图片不是原图)
原来的:
dstretched CIE Lab 转换回 BGR:
侵 eclipse :
k=2 的 kmeans:
关于python - 在显微镜研究中围绕异质纹理组织绘制边界,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32319534/