Serendipity ad8e5041f2 feat: 简化版网格划分算法,适合课堂讲解
算法流程(仅划线,不分割):
1. 彩色图转灰度图
2. 横/纵轴投影:每列/行灰度值求和
3. 阈值 X = (max-min) × 10%
4. 曲线减去 X,正=斑点,负=空隙
5. 过零点配对,中点即划线位置

与原版误差为0,代码带详细中文注释。
2026-05-06 20:21:19 +08:00

cDNA 微阵列图像处理作业资料

作业概述

本次作业涉及 cDNA 微阵列(基因芯片)图像处理,主要研究两个核心问题:

  1. 网格划分(Gridding - 定位微阵列图像中每个点的精确位置
  2. 图像分割(Segmentation - 区分前景(基因点)与背景

资料清单

1. 参考论文

文件名 作者 内容简介
2019-3-高污染基因芯片图像的网格划分_芦碧波.pdf 芦碧波 提出针对高污染基因芯片的网格划分方法,利用图像增强、分块处理和自动阈值检测来提高鲁棒性
封面+低对比度cDNA图像分割的局部水平集方法_芦碧波.pdf 芦碧波、刘利群、张霄宏、林忠华 提出基于局部信息的水平集方法,解决低对比度cDNA图像分割问题,引入局部图像拟合能量
显微图像分割.pdf - 显微图像分割相关资料(密码保护,需另存为可读版本)

2. MATLAB 代码

NewGridAndCV/ - 网格划分与C-V分割实现

文件名 功能说明
demo_GriddingAndCV.m 主程序 - 演示网格划分和Chan-Vese分割的完整流程
GriddingAndCV.m 网格划分核心算法,使用自相关估计点间距
cvseg.m Chan-Vese 水平集分割算法
chenvese.m C-V 模型的另一种实现
tvdenoise.m TVTotal Variation)去噪算法
choice.m 剔除面积过小的连通区域
choosemaxobj.m 保留最大连通区域
contour_bw.m 轮廓提取与二值化
fillingholes.m 填充孔洞
kappa.m 曲率计算
maskcircle2.m 圆形掩膜生成
redcolorcontour.m 红色轮廓显示
showphi.m 显示水平集函数

cDNA图像处理实例/ - 基础示例

文件名 功能说明
图像处理实例.pptx 实例讲解PPT
数据/cDNA/Demo_cdna.m 基础演示代码
数据/cDNA/*.tif 测试图像数据

3. 图像数据

文件名 说明
GSM16390_CH1.tif 通道1原始图像(~26MB
GSM16390_CH2.tif 通道2原始图像(~26MB
GSM16390_CH2color.tif 彩色合成图像(~79MB
*_small.tif 上述图像的缩小版本
cDNA.png 测试用cDNA图像
I_bw.jpg 二值化结果示例
I_griddingout.tif 网格划分输出示例

核心算法简介

网格划分算法流程

1. 读取图像 → 转灰度
2. 计算行/列投影(均值)
3. 自相关分析 → 估计点间距
4. 形态学滤波 → 去除背景
5. 阈值分割 → 标记峰值区域
6. 提取质心 → 确定网格点位置

Chan-Vese 水平集分割

  • 核心思想:不依赖图像梯度,基于区域统计信息分割
  • 能量函数E = \mu \cdot Length(C) + \nu \cdot Area(C) + \lambda_1 \int_{inside(C)} |I - c_1|^2 + \lambda_2 \int_{outside(C)} |I - c_2|^2
  • 优势:对模糊边缘和低对比度图像效果好

局部水平集方法(论文贡献)

  • 引入局部图像拟合能量 E^{LIF}
  • 使用高斯核 K_\sigma 提取局部信息
  • 能有效处理灰度不均匀的cDNA图像

运行环境

  • MATLAB R2016b 或更高版本
  • 需要工具箱
    • Image Processing Toolbox
    • Signal Processing Toolbox(用于自相关计算)

快速开始

% 1. 进入代码目录
cd NewGridAndCV

% 2. 运行演示
demo_GriddingAndCV

% 3. 或单独运行网格划分
GriddingAndCV

参考文献

  1. 芦碧波. 高污染基因芯片图像的网格划分[J]. 河南理工大学学报(自然科学版), 2019.
  2. 芦碧波, 刘利群, 张霄宏, 林忠华. 低对比度cDNA图像分割的局部水平集方法[J]. 中国图象图形学报, 2014.
S
Description
No description provided
Readme 12 MiB
Languages
MATLAB 48.9%
HTML 33%
Python 18.1%