93 lines
5.1 KiB
XML
93 lines
5.1 KiB
XML
<svg width="700" height="250" xmlns="http://www.w3.org/2000/svg">
|
|
<defs>
|
|
<marker id="flow-arrow" markerWidth="6" markerHeight="4" refX="6" refY="2" orient="auto">
|
|
<polygon points="0 0, 6 2, 0 4" fill="#e74c3c"/>
|
|
</marker>
|
|
</defs>
|
|
<text x="350" y="22" fill="#333" font-size="14" font-weight="bold" text-anchor="middle">Optical Flow Between Consecutive Frames</text>
|
|
|
|
<!-- Frame t -->
|
|
<text x="120" y="48" fill="#666" font-size="11" text-anchor="middle">Frame t</text>
|
|
<rect x="30" y="55" width="180" height="120" rx="4" fill="#ecf0f1" stroke="#999" stroke-width="1.5"/>
|
|
<!-- Background -->
|
|
<rect x="34" y="59" width="172" height="40" fill="#85C1E9" opacity="0.3"/>
|
|
<rect x="34" y="99" width="172" height="72" fill="#7f8c8d" opacity="0.15"/>
|
|
<!-- Object: square (car) at position 1 -->
|
|
<rect x="60" y="95" width="55" height="35" rx="4" fill="#3498db" opacity="0.4" stroke="#3498db" stroke-width="1.5"/>
|
|
<text x="87" y="117" fill="#3498db" font-size="9" text-anchor="middle" font-weight="bold">car</text>
|
|
<!-- Static object -->
|
|
<rect x="155" y="70" width="30" height="50" fill="#27ae60" opacity="0.3" stroke="#27ae60" stroke-width="1"/>
|
|
|
|
<!-- Arrow between frames -->
|
|
<text x="260" y="110" fill="#333" font-size="14" text-anchor="middle">→</text>
|
|
<text x="260" y="128" fill="#666" font-size="8" text-anchor="middle">Δt</text>
|
|
|
|
<!-- Frame t+1 -->
|
|
<text x="390" y="48" fill="#666" font-size="11" text-anchor="middle">Frame t+1</text>
|
|
<rect x="300" y="55" width="180" height="120" rx="4" fill="#ecf0f1" stroke="#999" stroke-width="1.5"/>
|
|
<!-- Background -->
|
|
<rect x="304" y="59" width="172" height="40" fill="#85C1E9" opacity="0.3"/>
|
|
<rect x="304" y="99" width="172" height="72" fill="#7f8c8d" opacity="0.15"/>
|
|
<!-- Object: square (car) moved right -->
|
|
<rect x="355" y="95" width="55" height="35" rx="4" fill="#3498db" opacity="0.4" stroke="#3498db" stroke-width="1.5"/>
|
|
<text x="382" y="117" fill="#3498db" font-size="9" text-anchor="middle" font-weight="bold">car</text>
|
|
<!-- Static object (same position) -->
|
|
<rect x="425" y="70" width="30" height="50" fill="#27ae60" opacity="0.3" stroke="#27ae60" stroke-width="1"/>
|
|
|
|
<!-- Optical flow field (right side) -->
|
|
<text x="580" y="48" fill="#e74c3c" font-size="11" font-weight="bold" text-anchor="middle">Flow Field (u, v)</text>
|
|
<rect x="500" y="55" width="160" height="120" rx="4" fill="#fff" stroke="#e74c3c" stroke-width="1.5"/>
|
|
|
|
<!-- Flow arrows: car region has strong rightward flow -->
|
|
<!-- Row 1: no flow (sky) -->
|
|
<circle cx="520" cy="75" r="1.5" fill="#999"/>
|
|
<circle cx="545" cy="75" r="1.5" fill="#999"/>
|
|
<circle cx="570" cy="75" r="1.5" fill="#999"/>
|
|
<circle cx="595" cy="75" r="1.5" fill="#999"/>
|
|
<circle cx="620" cy="75" r="1.5" fill="#999"/>
|
|
<circle cx="645" cy="75" r="1.5" fill="#999"/>
|
|
|
|
<!-- Row 2: no flow (static) -->
|
|
<circle cx="520" cy="95" r="1.5" fill="#999"/>
|
|
<circle cx="545" cy="95" r="1.5" fill="#999"/>
|
|
<!-- Car region: strong rightward arrows -->
|
|
<line x1="565" y1="95" x2="585" y2="95" stroke="#e74c3c" stroke-width="1.5" marker-end="url(#flow-arrow)"/>
|
|
<line x1="590" y1="95" x2="610" y2="95" stroke="#e74c3c" stroke-width="1.5" marker-end="url(#flow-arrow)"/>
|
|
<circle cx="635" cy="95" r="1.5" fill="#999"/>
|
|
<circle cx="650" cy="95" r="1.5" fill="#999"/>
|
|
|
|
<!-- Row 3: car flow continues -->
|
|
<circle cx="520" cy="115" r="1.5" fill="#999"/>
|
|
<circle cx="545" cy="115" r="1.5" fill="#999"/>
|
|
<line x1="565" y1="115" x2="585" y2="115" stroke="#e74c3c" stroke-width="1.5" marker-end="url(#flow-arrow)"/>
|
|
<line x1="590" y1="115" x2="610" y2="115" stroke="#e74c3c" stroke-width="1.5" marker-end="url(#flow-arrow)"/>
|
|
<circle cx="635" cy="115" r="1.5" fill="#999"/>
|
|
<circle cx="650" cy="115" r="1.5" fill="#999"/>
|
|
|
|
<!-- Row 4: ground -->
|
|
<circle cx="520" cy="135" r="1.5" fill="#999"/>
|
|
<circle cx="545" cy="135" r="1.5" fill="#999"/>
|
|
<circle cx="570" cy="135" r="1.5" fill="#999"/>
|
|
<circle cx="595" cy="135" r="1.5" fill="#999"/>
|
|
<circle cx="620" cy="135" r="1.5" fill="#999"/>
|
|
<circle cx="645" cy="135" r="1.5" fill="#999"/>
|
|
|
|
<!-- Row 5 -->
|
|
<circle cx="520" cy="155" r="1.5" fill="#999"/>
|
|
<circle cx="545" cy="155" r="1.5" fill="#999"/>
|
|
<circle cx="570" cy="155" r="1.5" fill="#999"/>
|
|
<circle cx="595" cy="155" r="1.5" fill="#999"/>
|
|
<circle cx="620" cy="155" r="1.5" fill="#999"/>
|
|
<circle cx="645" cy="155" r="1.5" fill="#999"/>
|
|
|
|
<!-- Legend -->
|
|
<line x1="510" y1="162" x2="525" y2="162" stroke="#e74c3c" stroke-width="1.5" marker-end="url(#flow-arrow)"/>
|
|
<text x="540" y="166" fill="#666" font-size="8" text-anchor="start">motion</text>
|
|
<circle cx="600" cy="162" r="2" fill="#999"/>
|
|
<text x="610" y="166" fill="#666" font-size="8" text-anchor="start">static</text>
|
|
|
|
<!-- Bottom note -->
|
|
<rect x="80" y="195" width="540" height="45" rx="6" fill="#f5f5f5" stroke="#333" stroke-width="1"/>
|
|
<text x="350" y="212" fill="#333" font-size="10" text-anchor="middle">Each pixel gets a 2D displacement vector (u, v) showing where it moved.</text>
|
|
<text x="350" y="228" fill="#666" font-size="9" text-anchor="middle">Moving objects have large flow vectors; static regions have near-zero flow.</text>
|
|
</svg> |