> ## Documentation Index
> Fetch the complete documentation index at: https://felimet-hub.jmcores.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Traditional vs. Z-type schlieren systems for ML use

> ICMLSC 2025 paper comparing standard and Z-configuration schlieren optics, evaluating cutoff ratio effects and their potential for machine learning use.

export const CiteSwitch = ({bibtex = "", lang = "zh"}) => {
  const t = lang === "en" ? {
    hint: "Switch citation format",
    copy: "Copy",
    copied: "Copied"
  } : {
    hint: "切換引用格式",
    copy: "複製",
    copied: "已複製"
  };
  const [fmt, setFmt] = useState("bibtex");
  const [copied, setCopied] = useState(false);
  const raw = (bibtex || "").trim();
  const field = name => {
    const m = raw.match(new RegExp(name + "\\s*=\\s*[{\"]([^{}\"]*)[}\"]", "i"));
    return m ? m[1].replace(/\s+/g, " ").trim() : "";
  };
  const typeM = raw.match(/@(\w+)/);
  const isConf = typeM ? (/inproceedings|conference/i).test(typeM[1]) : false;
  const title = field("title");
  const journal = field("journal");
  const booktitle = field("booktitle");
  const year = field("year");
  const volume = field("volume");
  const number = field("number");
  const doi = field("doi").replace(/^\s*(https?:\/\/)?(dx\.)?doi\.org\//i, "").replace(/^doi:\s*/i, "").trim();
  const address = field("address");
  const pages = field("pages").replace(/(\d)\s*-+\s*(\d)/g, "$1–$2");
  const splitName = name => {
    const n = name.trim();
    if (n.includes(",")) {
      const p = n.split(",");
      return {
        last: p[0].trim(),
        first: p.slice(1).join(",").trim()
      };
    }
    const p = n.split(/\s+/);
    const last = p.pop();
    return {
      first: p.join(" "),
      last
    };
  };
  const initialsOf = first => {
    const parts = first.split(/[\s-]+/).filter(Boolean);
    const ini = parts.map(p => p[0].toUpperCase() + ".");
    return first.includes("-") ? ini.join("-") : ini.join(" ");
  };
  const names = field("author") ? field("author").split(/\s+and\s+/).map(splitName) : [];
  const joinList = (arr, amp) => {
    if (arr.length <= 1) return arr[0] || "";
    if (arr.length === 2) return arr.join(amp ? ", & " : " and ");
    const sep = amp ? ", & " : ", and ";
    return arr.slice(0, -1).join(", ") + sep.replace(/^, /, ", ") + arr[arr.length - 1];
  };
  const ieeeAuthors = joinList(names.map(n => (initialsOf(n.first) + " " + n.last).trim()), false);
  const apaAuthors = joinList(names.map(n => (n.last + ", " + initialsOf(n.first)).trim()), true);
  const ieeeRest = isConf ? [booktitle && "in " + booktitle, address, year, pages && "pp. " + pages].filter(Boolean).join(", ") : [journal, volume && "vol. " + volume, number && "no. " + number, pages && "pp. " + pages, year, doi && "doi: " + doi].filter(Boolean).join(", ");
  const ieee = `${ieeeAuthors}, "${title}," ${ieeeRest}.`.replace(/\s+/g, " ");
  const apaVol = volume ? volume + (number ? "(" + number + ")" : "") : "";
  const apa = isConf ? `${apaAuthors} (${year}). ${title}. ${booktitle ? "In " + booktitle + (address ? ", " + address : "") : address}.`.replace(/\s+/g, " ") : `${apaAuthors} (${year}). ${title}. ${[journal, apaVol, pages].filter(Boolean).join(", ")}.${doi ? " https://doi.org/" + doi : ""}`.replace(/\s+/g, " ");
  const TABS = [{
    key: "bibtex",
    label: "BibTeX"
  }, {
    key: "ieee",
    label: "IEEE"
  }, {
    key: "apa",
    label: "APA"
  }];
  const current = fmt === "bibtex" ? raw : fmt === "ieee" ? ieee : apa;
  const doCopy = () => {
    try {
      navigator.clipboard.writeText(current);
      setCopied(true);
      setTimeout(() => setCopied(false), 1500);
    } catch (e) {
      setCopied(false);
    }
  };
  const css = `
  .cs-root{--cs-bg:#FAF8F3;--cs-surface:rgba(0,0,0,0.025);--cs-border:rgba(0,0,0,0.09);--cs-text:#2b2722;--cs-dim:#6f6a62;--cs-faint:#8a8378;--cs-accent:#bf7551;--cs-code:rgba(0,0,0,0.04);border:1px solid var(--cs-border);border-radius:14px;background:var(--cs-bg);color:var(--cs-text);overflow:hidden;}
  .dark .cs-root{--cs-bg:#1b1a18;--cs-surface:rgba(255,255,255,0.03);--cs-border:rgba(255,255,255,0.08);--cs-text:#e7e3da;--cs-dim:#a8a299;--cs-faint:#8a8378;--cs-accent:#cf8a68;--cs-code:rgba(255,255,255,0.05);}
  .cs-head{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--cs-border);flex-wrap:wrap;}
  .cs-head-ic{color:var(--cs-accent);flex-shrink:0;}
  .cs-hint{font-size:12px;color:var(--cs-faint);margin-right:auto;}
  .cs-tab{border:1px solid var(--cs-border);background:transparent;border-radius:8px;padding:5px 12px;cursor:pointer;color:var(--cs-dim);font:inherit;font-size:12.5px;font-weight:600;transition:all .15s;}
  .cs-tab:hover{background:var(--cs-surface);}
  .cs-tab-on{border-color:rgba(191,117,81,.5);background:rgba(191,117,81,.1);color:var(--cs-accent);}
  .cs-body{position:relative;padding:14px 15px;}
  .cs-pre{margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px;line-height:1.6;white-space:pre-wrap;word-break:break-word;color:var(--cs-text);}
  .cs-cite{font-size:13.5px;line-height:1.7;color:var(--cs-text);word-break:break-word;}
  .cs-copy{position:absolute;top:11px;right:12px;display:flex;align-items:center;gap:5px;border:1px solid var(--cs-border);background:var(--cs-bg);border-radius:8px;padding:5px 10px;cursor:pointer;color:var(--cs-dim);font:inherit;font-size:11.5px;font-weight:600;transition:all .15s;}
  .cs-copy:hover{border-color:rgba(191,117,81,.5);color:var(--cs-accent);}
  .cs-copy-ok{color:#5f8a52;border-color:rgba(95,138,82,.4);}
  .dark .cs-copy-ok{color:#86b274;}
  .cs-copy svg{flex-shrink:0;}
  `;
  return <div className="cs-root">
      <style>{css}</style>
      <div className="cs-head">
        <svg className="cs-head-ic" xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"><path d="M10 8h8" /><path d="M6 8h.01" /><path d="M6 12h.01" /><path d="M6 16h.01" /><path d="M10 12h8" /><path d="M10 16h4" /><rect width="20" height="18" x="2" y="3" rx="2" /></svg>
        <span className="cs-hint">{t.hint}</span>
        {TABS.map(tab => <button key={tab.key} type="button" className={"cs-tab" + (fmt === tab.key ? " cs-tab-on" : "")} onClick={() => setFmt(tab.key)}>{tab.label}</button>)}
      </div>
      <div className="cs-body">
        <button type="button" className={"cs-copy" + (copied ? " cs-copy-ok" : "")} onClick={doCopy}>
          {copied ? <svg xmlns="http://www.w3.org/2000/svg" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2.5" strokeLinecap="round" strokeLinejoin="round"><path d="M20 6 9 17l-5-5" /></svg> : <svg xmlns="http://www.w3.org/2000/svg" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"><rect width="14" height="14" x="8" y="8" rx="2" /><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2" /></svg>}
          {copied ? t.copied : t.copy}
        </button>
        {fmt === "bibtex" ? <pre className="cs-pre">{raw}</pre> : <div className="cs-cite">{current}</div>}
      </div>
    </div>;
};

export const PubMeta = ({type = "journal", venue, date, confType, doi, url}) => {
  const doiUrl = doi ? doi.startsWith("http") ? doi : `https://doi.org/${doi}` : null;
  const pillBase = {
    display: "inline-block",
    padding: "0.15rem 0.6rem",
    borderRadius: "9999px",
    fontSize: "0.78rem",
    fontWeight: 600,
    lineHeight: 1.6,
    border: "1px solid"
  };
  const tone = {
    type: {
      color: "#8a9a7b",
      borderColor: "rgba(138,154,123,0.4)",
      background: "rgba(138,154,123,0.1)"
    },
    venue: {
      color: "#c9a35b",
      borderColor: "rgba(201,163,91,0.4)",
      background: "rgba(201,163,91,0.1)"
    },
    date: {
      color: "#5b6c8f",
      borderColor: "rgba(91,108,143,0.4)",
      background: "rgba(91,108,143,0.1)"
    },
    link: {
      color: "#bf7551",
      borderColor: "rgba(191,117,81,0.4)",
      background: "rgba(191,117,81,0.1)"
    }
  };
  const typeLabel = type === "conference" ? "Conference" : "Journal";
  return <div style={{
    display: "flex",
    flexWrap: "wrap",
    gap: "0.5rem",
    alignItems: "center",
    marginBottom: "1.5rem"
  }}>
      <span style={{
    ...pillBase,
    ...tone.type
  }}>{typeLabel}</span>
      {venue && <span style={{
    ...pillBase,
    ...tone.venue
  }}>{venue}</span>}
      {date && <span style={{
    ...pillBase,
    ...tone.date
  }}>{date}</span>}
      {confType && <span style={{
    ...pillBase,
    ...tone.type
  }}>{confType}</span>}
      {doiUrl && <a href={doiUrl} target="_blank" rel="noopener noreferrer" style={{
    ...pillBase,
    ...tone.link,
    textDecoration: "none"
  }}>
          DOI ↗
        </a>}
      {url && <a href={url} target="_blank" rel="noopener noreferrer" style={{
    ...pillBase,
    ...tone.link,
    textDecoration: "none"
  }}>
          Link ↗
        </a>}
    </div>;
};

<PubMeta type="conference" venue="Tokyo, Japan" date="2025-01-24" url="https://icmlsc.org/2025.html" />

# Implementation Analysis of Traditional and Z-Configuration Schlieren Systems in Machine Learning Applications

Wen-Lin Chu, Jia-Ming Zhou, Jun-Shen Shi, and Bo-Lin Jian

## Abstract

Schlieren imaging is a non-invasive flow visualization technique based on light propagation and projection principles. This study analyzes the differences between Z-type and standard Schlieren setup methods and discusses their applications in machine learning. The standard Schlieren system employs a simplified configuration comprising a light source and a concave mirror. The process begins by positioning the light source (such as a point source or laser) at the focal point of the concave mirror, generating parallel light beams after reflection. These parallel beams pass through the test subject, with a knife edge placed directly at the focal point to cut the light rays, thereby enhancing the visibility of light deflection. The Z-type configuration represents a typical Schlieren photography system arrangement that utilizes two concave mirrors in a Z-shaped alignment. This arrangement effectively extends the optical path while maintaining system compactness and symmetry. Consequently, this research compares these two setup methods and explores their implementation outcomes in machine learning applications. With the continuous advancement of machine learning technologies, this study anticipates that these techniques will find increasingly widespread applications in schlieren analysis, potentially enhancing the efficiency and accuracy of industrial automated inspection processes.

## Keywords

* Schlieren Imaging Technique
* Z-Configuration
* Machine Learning Application

## Sample Results

<Tabs>
  <Tab title="System Overview">
    <p>This figure illustrates the optical path configuration of the Z-type schlieren system. The point light source is positioned at the focal point of the left concave mirror; after reflection, a collimated beam passes through the test object. When the beam traverses a flow field with a refractive-index gradient, it is deflected, then refocused by the right concave mirror (separated from the left mirror by 2<em>f</em>) onto the Fourier transform plane. A directionally adjustable knife edge placed at this focal point (supporting vertical, horizontal, or bidirectional blocking modes) filters out undeflected light, and the final schlieren image modulated by the knife edge is captured by the camera image plane. This standard configuration serves as the foundational optical architecture for schlieren flow-field visualization and machine learning training data acquisition.</p>

    <img src="https://mintcdn.com/felimet/o4nUK2uwNPSF27VA/images/ICMLSC2025_demo1.png?fit=max&auto=format&n=o4nUK2uwNPSF27VA&q=85&s=e49a0a43340cdef85f882d9c8154eb40" alt="Z-type Schlieren optical path system" width="3255" height="1782" data-path="images/ICMLSC2025_demo1.png" />
  </Tab>

  <Tab title="Knife Edge Cutoff Ratio">
    <p>This figure demonstrates the effect of the knife edge cutoff ratio on image quality in the schlieren imaging system. Five images correspond to cutoff ratio settings of 0%, 25%, 50%, 75%, and 100%, clearly showing the progressive decrease in image background brightness as the cutoff ratio increases.</p>

    <img src="https://mintcdn.com/felimet/o4nUK2uwNPSF27VA/images/ICMLSC2025_demo3.png?fit=max&auto=format&n=o4nUK2uwNPSF27VA&q=85&s=04391282e53434b4c296cd879bc40eb5" alt="Knife Edge Cutoff Ratio" width="2248" height="1469" data-path="images/ICMLSC2025_demo3.png" />
  </Tab>

  <Tab title="Heating Differential Schlieren Imaging">
    <p>This figure shows the refractive-index change detected by both the standard and Z-type schlieren systems before and after heating a transparent plastic sheet, with quantitative analysis performed via differential image post-processing.</p>
    <p>Schlieren imaging can visualize density changes in transparent media. When a transparent plastic sheet is heated, the temperature gradient inside the material alters the refractive index distribution, causing the transmitted light to deflect. This technique converts the temperature–density relationship into a visualized image: as temperature rises, density decreases and the refractive index changes accordingly, producing differences in the light deflection path.</p>
    <p>The difference image uses pseudo-color encoding for visual analysis, where magenta represents regions with no change before and after heating, and cyan-green marks regions with significant refractive-index differences. This technique effectively highlights the spatial distribution pattern of thermal disturbances. The differential operation eliminates background noise and systematic errors, retaining only signal changes induced by thermal effects, providing high-quality feature extraction input for subsequent machine learning models.</p>

    <img src="https://mintcdn.com/felimet/o4nUK2uwNPSF27VA/images/ICMLSC2025_demo2.png?fit=max&auto=format&n=o4nUK2uwNPSF27VA&q=85&s=550a96105db5b4c114ce71744a9c94e8" alt="Heating Differential Schlieren Imaging" width="3209" height="1865" data-path="images/ICMLSC2025_demo2.png" />
  </Tab>
</Tabs>

## BibTeX Citation

<CiteSwitch
  lang="en"
  bibtex={`@InProceedings{ChuICMLSC2025,
author    = {Wen-Lin Chu and Jia-Ming Zhou and Jun-Shen Shi and Bo-Lin Jian},
title     = {Implementation Analysis of Traditional and Z-Configuration Schlieren Systems in Machine Learning Applications},
booktitle = {International Conference on Machine Learning and Soft Computing (ICMLSC 2025)},
year      = {2025},
month     = {January},
address   = {Tokyo, Japan}
}`}
/>
