110 lines
11 KiB
Plaintext
110 lines
11 KiB
Plaintext
<mxfile host="Electron">
|
||
<diagram name="简化版完整算法流程" id="flowchart">
|
||
<mxGraphModel dx="1601" dy="1168" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1200" pageHeight="2000" background="none" math="0" shadow="0">
|
||
<root>
|
||
<mxCell id="0" />
|
||
<mxCell id="1" parent="0" />
|
||
<mxCell id="title" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=18;fontStyle=1;fontColor=#1565C0" value="cDNA微阵列网格划分 —— 简化版完整算法流程" vertex="1">
|
||
<mxGeometry height="40" width="700" x="250" y="20" as="geometry" />
|
||
</mxCell>
|
||
<mxCell id="s1" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#C8E6C9;strokeColor=#2E7D32;strokeWidth=2;fontSize=14;fontStyle=1;align=center;verticalAlign=middle" value="1. 读取图像" vertex="1">
|
||
<mxGeometry height="45" width="240" x="480" y="80" as="geometry" />
|
||
</mxCell>
|
||
<mxCell id="s2" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#C8E6C9;strokeColor=#2E7D32;strokeWidth=2;fontSize=13;fontStyle=1;align=center;verticalAlign=middle" value="2. 转为灰度图
color.rgb2gray(img)" vertex="1">
|
||
<mxGeometry height="45" width="240" x="480" y="155" as="geometry" />
|
||
</mxCell>
|
||
<mxCell id="s_otsu" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFF9C4;strokeColor=#F9A825;strokeWidth=3;fontSize=12;fontStyle=1;align=center;verticalAlign=middle" value="3. Otsu 自动阈值
遍历0~255,选最小类内方差 T
pct = T / 255(自适应)" vertex="1">
|
||
<mxGeometry height="55" width="240" x="480" y="230" as="geometry" />
|
||
</mxCell>
|
||
<mxCell id="s3L" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#E8EAF6;strokeColor=#3949AB;strokeWidth=2;fontSize=12;align=center;verticalAlign=middle" value="3a. 横轴投影
np.sum(gray, axis=0)
每列灰度求和" vertex="1">
|
||
<mxGeometry height="60" width="210" x="270" y="327" as="geometry" />
|
||
</mxCell>
|
||
<mxCell id="s3R" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#E8EAF6;strokeColor=#3949AB;strokeWidth=2;fontSize=12;align=center;verticalAlign=middle" value="3b. 纵轴投影
np.sum(gray, axis=1)
每行灰度求和" vertex="1">
|
||
<mxGeometry height="60" width="210" x="720" y="327" as="geometry" />
|
||
</mxCell>
|
||
<mxCell id="s4" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFF9C4;strokeColor=#F9A825;strokeWidth=3;fontSize=13;fontStyle=1;align=center;verticalAlign=middle" value="4. 计算投影阈值 X
X = (max-min) × pct" vertex="1">
|
||
<mxGeometry height="50" width="240" x="480" y="437" as="geometry" />
|
||
</mxCell>
|
||
<mxCell id="s5" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFF9C4;strokeColor=#F9A825;strokeWidth=3;fontSize=12;fontStyle=1;align=center;verticalAlign=middle" value="5. 曲线减去 X
正 = 斑点,负 = 空隙,零 = 分界线" vertex="1">
|
||
<mxGeometry height="55" width="240" x="480" y="527" as="geometry" />
|
||
</mxCell>
|
||
<mxCell id="s6" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#E3F2FD;strokeColor=#1565C0;strokeWidth=3;fontSize=12;fontStyle=1;align=center;verticalAlign=middle" value="6. 找过零点,配对取空隙中点
离开斑点 + 进入下一斑点 → 划线位置" vertex="1">
|
||
<mxGeometry height="55" width="240" x="480" y="617" as="geometry" />
|
||
</mxCell>
|
||
<mxCell id="s7" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFE0B2;strokeColor=#E65100;strokeWidth=2;fontSize=12;align=center;verticalAlign=middle;fontStyle=1" value="7. 逐格 Otsu 分割
对每个格子独立算 Otsu 阈值,二值化" vertex="1">
|
||
<mxGeometry height="55" width="240" x="480" y="717" as="geometry" />
|
||
</mxCell>
|
||
<mxCell id="s8" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFE0B2;strokeColor=#E65100;strokeWidth=2;fontSize=12;align=center;verticalAlign=middle;fontStyle=1" value="8. keep_largest_object
每个格子只保留面积最大的连通域" vertex="1">
|
||
<mxGeometry height="50" width="240" x="480" y="807" as="geometry" />
|
||
</mxCell>
|
||
<mxCell id="s9" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFE0B2;strokeColor=#E65100;strokeWidth=2;fontSize=12;align=center;verticalAlign=middle;fontStyle=1" value="9. remove_small_objects
全局去噪:面积 &lt; 中位数25% 自动剔除" vertex="1">
|
||
<mxGeometry height="50" width="240" x="480" y="897" as="geometry" />
|
||
</mxCell>
|
||
<mxCell id="s10" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFE0B2;strokeColor=#E65100;strokeWidth=2;fontSize=12;align=center;verticalAlign=middle;fontStyle=1" value="10. 统计斑点数
ndimage.label 标记连通域,过滤面积&lt;10" vertex="1">
|
||
<mxGeometry height="50" width="240" x="480" y="987" as="geometry" />
|
||
</mxCell>
|
||
<mxCell id="s11" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#C8E6C9;strokeColor=#2E7D32;strokeWidth=2;fontSize=12;align=center;verticalAlign=middle;fontStyle=1" value="11. 输出 6 张可视化图片
网格 / 投影曲线 / 直方图 / 分割 / 后处理" vertex="1">
|
||
<mxGeometry height="55" width="240" x="480" y="1077" as="geometry" />
|
||
</mxCell>
|
||
<mxCell id="e1" edge="1" parent="1" source="s1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#666666;strokeWidth=2;endArrow=classic;endFill=1" target="s2">
|
||
<mxGeometry relative="1" as="geometry" />
|
||
</mxCell>
|
||
<mxCell id="e2" edge="1" parent="1" source="s2" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#666666;strokeWidth=2;endArrow=classic;endFill=1" target="s_otsu">
|
||
<mxGeometry relative="1" as="geometry" />
|
||
</mxCell>
|
||
<mxCell id="e3L" edge="1" parent="1" source="s_otsu" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#666666;strokeWidth=2;endArrow=classic;endFill=1" target="s3L">
|
||
<mxGeometry relative="1" as="geometry" />
|
||
</mxCell>
|
||
<mxCell id="e3R" edge="1" parent="1" source="s_otsu" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#666666;strokeWidth=2;endArrow=classic;endFill=1" target="s3R">
|
||
<mxGeometry relative="1" as="geometry" />
|
||
</mxCell>
|
||
<mxCell id="e4L" edge="1" parent="1" source="s3L" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#666666;strokeWidth=2;endArrow=classic;endFill=1" target="s4">
|
||
<mxGeometry relative="1" as="geometry" />
|
||
</mxCell>
|
||
<mxCell id="e4R" edge="1" parent="1" source="s3R" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#666666;strokeWidth=2;endArrow=classic;endFill=1" target="s4">
|
||
<mxGeometry relative="1" as="geometry" />
|
||
</mxCell>
|
||
<mxCell id="e5" edge="1" parent="1" source="s4" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#666666;strokeWidth=2;endArrow=classic;endFill=1" target="s5">
|
||
<mxGeometry relative="1" as="geometry" />
|
||
</mxCell>
|
||
<mxCell id="e6" edge="1" parent="1" source="s5" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#666666;strokeWidth=2;endArrow=classic;endFill=1" target="s6">
|
||
<mxGeometry relative="1" as="geometry" />
|
||
</mxCell>
|
||
<mxCell id="e7" edge="1" parent="1" source="s6" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#666666;strokeWidth=2;endArrow=classic;endFill=1;fontStyle=1" target="s7">
|
||
<mxGeometry relative="1" as="geometry" />
|
||
</mxCell>
|
||
<mxCell id="e8" edge="1" parent="1" source="s7" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#666666;strokeWidth=2;endArrow=classic;endFill=1;fontStyle=1" target="s8">
|
||
<mxGeometry relative="1" as="geometry" />
|
||
</mxCell>
|
||
<mxCell id="e9" edge="1" parent="1" source="s8" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#666666;strokeWidth=2;endArrow=classic;endFill=1;fontStyle=1" target="s9">
|
||
<mxGeometry relative="1" as="geometry" />
|
||
</mxCell>
|
||
<mxCell id="e10" edge="1" parent="1" source="s9" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#666666;strokeWidth=2;endArrow=classic;endFill=1;fontStyle=1" target="s10">
|
||
<mxGeometry relative="1" as="geometry" />
|
||
</mxCell>
|
||
<mxCell id="e11" edge="1" parent="1" source="s10" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#666666;strokeWidth=2;endArrow=classic;endFill=1;fontStyle=1" target="s11">
|
||
<mxGeometry relative="1" as="geometry" />
|
||
</mxCell>
|
||
<mxCell id="legend_title" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;fontStyle=1" value="图例" vertex="1">
|
||
<mxGeometry height="25" width="60" x="270" y="929" as="geometry" />
|
||
</mxCell>
|
||
<mxCell id="leg1" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#C8E6C9;strokeColor=#2E7D32;strokeWidth=2;fontSize=11;align=center;verticalAlign=middle" value="输入/输出" vertex="1">
|
||
<mxGeometry height="28" width="100" x="270" y="964" as="geometry" />
|
||
</mxCell>
|
||
<mxCell id="leg2" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFF9C4;strokeColor=#F9A825;strokeWidth=2;fontSize=11;align=center;verticalAlign=middle" value="网格划线" vertex="1">
|
||
<mxGeometry height="28" width="100" x="270" y="999" as="geometry" />
|
||
</mxCell>
|
||
<mxCell id="leg3" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#E3F2FD;strokeColor=#1565C0;strokeWidth=2;fontSize=11;align=center;verticalAlign=middle" value="过零点/配对" vertex="1">
|
||
<mxGeometry height="28" width="100" x="270" y="1034" as="geometry" />
|
||
</mxCell>
|
||
<mxCell id="leg4" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#E8EAF6;strokeColor=#3949AB;strokeWidth=2;fontSize=11;align=center;verticalAlign=middle" value="投影计算" vertex="1">
|
||
<mxGeometry height="28" width="100" x="270" y="1069" as="geometry" />
|
||
</mxCell>
|
||
<mxCell id="leg5" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFE0B2;strokeColor=#E65100;strokeWidth=2;fontSize=11;align=center;verticalAlign=middle" value="分割/后处理" vertex="1">
|
||
<mxGeometry height="28" width="100" x="270" y="1104" as="geometry" />
|
||
</mxCell>
|
||
</root>
|
||
</mxGraphModel>
|
||
</diagram>
|
||
</mxfile>
|