<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1">
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/uvc-camera-streams-one-frame-then-freezes-endpoint-halt-handling</loc>
    <lastmod>2026-11-09T14:49:52-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-d3383b27dd40ab404a874afc.jpg?v=1794180796</image:loc>
      <image:title>UVC camera streams one frame then freezes: endpoint halt handling</image:title>
      <image:caption>UVC camera streams one frame then freezes: endpoint halt handling</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/camera-configuration-lost-after-job-load-fix-storage-and-load-order</loc>
    <lastmod>2026-11-09T14:31:23-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-497dd877c73f354d75288635.jpg?v=1794181065</image:loc>
      <image:title>Camera configuration lost after job load: fix storage and load order</image:title>
      <image:caption>Camera configuration lost after job load: fix storage and load order</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/depth-stream-waiting-on-arm-linux-bandwidth-and-driver-checks</loc>
    <lastmod>2026-11-09T08:59:30-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-5bfc5cd7071fac216963f3f7.jpg?v=1794181125</image:loc>
      <image:title>Depth stream waiting on ARM Linux: bandwidth and driver checks</image:title>
      <image:caption>Depth stream waiting on ARM Linux: bandwidth and driver checks</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/sensor-transpose-dropped-lines-fix-a-90-degree-rotated-feed</loc>
    <lastmod>2026-11-09T16:38:16-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-8f9a99135f3713e5c377a2c5.jpg?v=1794181176</image:loc>
      <image:title>Sensor transpose dropped lines: fix a 90 degree rotated feed</image:title>
      <image:caption>Sensor transpose dropped lines: fix a 90 degree rotated feed</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/read-smart-camera-data-from-a-vb-net-tcp-client-safely</loc>
    <lastmod>2026-11-09T13:52:34-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-385917e0578d4c7e90ef0a7a.jpg?v=1794181227</image:loc>
      <image:title>Read smart camera data from a VB.NET TCP client safely</image:title>
      <image:caption>Read smart camera data from a VB.NET TCP client safely</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/keep-tool-orientation-fixed-on-round-parts-at-every-vision-pick</loc>
    <lastmod>2026-11-09T14:47:30-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-4a48a7018d62756c0a2177d4.jpg?v=1794181281</image:loc>
      <image:title>Keep tool orientation fixed on round parts at every vision pick</image:title>
      <image:caption>Keep tool orientation fixed on round parts at every vision pick</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/depth-camera-sdk-support-check-verify-stereo-cameras-before-you-buy</loc>
    <lastmod>2026-11-09T17:24:05-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-48fc24980ed71bf155e0df7e.jpg?v=1794181542</image:loc>
      <image:title>Depth camera SDK support check: verify stereo cameras before you buy</image:title>
      <image:caption>Depth camera SDK support check: verify stereo cameras before you buy</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/opc-ua-companion-spec-import-order-fix-missing-nodeset-errors</loc>
    <lastmod>2026-11-09T08:58:24-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-e0ad48e4b65c75ceb014bf83.jpg?v=1794181608</image:loc>
      <image:title>OPC UA companion spec import order: fix missing nodeset errors</image:title>
      <image:caption>OPC UA companion spec import order: fix missing nodeset errors</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/multiple-camera-streams-in-a-grid-with-per-camera-output-folders</loc>
    <lastmod>2026-11-09T14:40:37-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-9f669ce840f7483fe322441f.jpg?v=1794181663</image:loc>
      <image:title>Multiple camera streams in a grid with per-camera output folders</image:title>
      <image:caption>Multiple camera streams in a grid with per-camera output folders</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/smart-camera-image-processing-time-what-is-fast-enough</loc>
    <lastmod>2026-11-09T11:55:52-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-0d1b96459f4688322527644d.jpg?v=1794181717</image:loc>
      <image:title>Smart camera image processing time: what is fast enough</image:title>
      <image:caption>Smart camera image processing time: what is fast enough</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/multi-camera-mux-still-capture-switch-the-channel-before-you-stream</loc>
    <lastmod>2026-11-09T12:51:03-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-d4183ded408ace3ee7065c2d.jpg?v=1794181771</image:loc>
      <image:title>Multi camera mux still capture: switch the channel before you stream</image:title>
      <image:caption>Multi camera mux still capture: switch the channel before you stream</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/opencv-python-headless-vs-opencv-python-in-slim-docker-containers</loc>
    <lastmod>2026-11-09T10:23:25-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-ba1d25724cb9412524a7867a.jpg?v=1794182029</image:loc>
      <image:title>opencv-python-headless vs opencv-python in slim Docker containers</image:title>
      <image:caption>opencv-python-headless vs opencv-python in slim Docker containers</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/vision-system-reject-delay-timer-fixed-delay-or-bottle-tracking</loc>
    <lastmod>2026-11-09T02:33:17-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-fa744ce7c24962615f8fc0b0.jpg?v=1794182085</image:loc>
      <image:title>Vision system reject delay timer: fixed delay or bottle tracking</image:title>
      <image:caption>Vision system reject delay timer: fixed delay or bottle tracking</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/bilateral-filter-skin-smoothing-without-the-flat-look</loc>
    <lastmod>2026-11-08T19:27:02-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-09ae4627220e239ce48dd9f2.jpg?v=1794182138</image:loc>
      <image:title>Bilateral filter skin smoothing without the flat look</image:title>
      <image:caption>Bilateral filter skin smoothing without the flat look</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/watershed-segmentation-how-touching-objects-get-split</loc>
    <lastmod>2026-11-09T11:34:02-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-368447eef82a67aab987bd18.jpg?v=1794182194</image:loc>
      <image:title>Watershed segmentation: how touching objects get split</image:title>
      <image:caption>Watershed segmentation: how touching objects get split</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/golden-template-comparison-for-defect-inspection</loc>
    <lastmod>2026-11-09T12:12:32-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-4120e6de85ab8f612e0e9222.jpg?v=1794182248</image:loc>
      <image:title>Golden template comparison for defect inspection</image:title>
      <image:caption>Golden template comparison for defect inspection</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/grayscale-camera-for-machine-learning-halve-your-pixel-budget</loc>
    <lastmod>2026-11-09T05:54:13-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-d647f9765ff8606a36bbce12.jpg?v=1794182509</image:loc>
      <image:title>Grayscale camera for machine learning: halve your pixel budget</image:title>
      <image:caption>Grayscale camera for machine learning: halve your pixel budget</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/frame-grabber-pulse-duty-cycle-and-frequency-limits</loc>
    <lastmod>2026-11-09T07:13:39-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-eda3488f8375c4421387b279.jpg?v=1794182566</image:loc>
      <image:title>Frame grabber pulse duty cycle and frequency limits</image:title>
      <image:caption>Frame grabber pulse duty cycle and frequency limits</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/tracking-a-moving-target-with-a-vision-camera</loc>
    <lastmod>2026-11-08T23:06:51-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-674fb7d84b04190880e03e85.jpg?v=1794182621</image:loc>
      <image:title>Tracking a moving target with a vision camera</image:title>
      <image:caption>Tracking a moving target with a vision camera</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/sensor-triggered-line-scan-start-with-encoder-driven-capture</loc>
    <lastmod>2026-11-08T19:04:39-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-fcf5c96c9cd15c9d27c8a4b1.jpg?v=1794182679</image:loc>
      <image:title>Sensor triggered line scan start with encoder-driven capture</image:title>
      <image:caption>Sensor triggered line scan start with encoder-driven capture</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/transfer-3d-viewer-zoom-by-saving-the-field-of-view</loc>
    <lastmod>2026-11-08T19:05:39-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-6f91f6513079b3186e2aecce.jpg?v=1794182739</image:loc>
      <image:title>Transfer 3D viewer zoom by saving the field of view</image:title>
      <image:caption>Transfer 3D viewer zoom by saving the field of view</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/camera-ip-conflict-ping-works-but-the-web-page-is-wrong</loc>
    <lastmod>2026-11-09T12:14:54-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-ef38e541e9f975fa3b000e82.jpg?v=1794184020</image:loc>
      <image:title>Camera IP conflict: ping works but the web page is wrong</image:title>
      <image:caption>Camera IP conflict: ping works but the web page is wrong</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/read-curved-text-on-a-part-ocr-on-an-annulus-without-unwrapping</loc>
    <lastmod>2026-11-09T07:56:10-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-82dc77bd206a577725574b90.jpg?v=1794184021</image:loc>
      <image:title>Read curved text on a part: OCR on an annulus without unwrapping</image:title>
      <image:caption>Read curved text on a part: OCR on an annulus without unwrapping</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/ros-camera-stuck-under-1-hz-set-a-frame-rate-the-camera-can-deliver</loc>
    <lastmod>2026-11-08T19:27:59-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-b3dd81e86dfb8bb6fc31d4b0.jpg?v=1794184079</image:loc>
      <image:title>ROS camera stuck under 1 Hz: set a frame rate the camera can deliver</image:title>
      <image:caption>ROS camera stuck under 1 Hz: set a frame rate the camera can deliver</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/auto-exposure-priority-why-your-frame-rate-drops-to-half</loc>
    <lastmod>2026-11-09T21:05:59-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-f4b60eee6d18fbaf69ff2e09.jpg?v=1794184136</image:loc>
      <image:title>Auto exposure priority: why your frame rate drops to half</image:title>
      <image:caption>Auto exposure priority: why your frame rate drops to half</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/analog-video-black-level-adjustment-why-it-stays-at-zero</loc>
    <lastmod>2026-11-08T19:29:50-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-a4b271c49e7ee693cd670852.jpg?v=1794184190</image:loc>
      <image:title>Analog video black level adjustment: why it stays at zero</image:title>
      <image:caption>Analog video black level adjustment: why it stays at zero</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/camera-image-flickers-causes-and-fixes-for-mains-beat-and-triggers</loc>
    <lastmod>2026-11-09T05:50:06-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-eec5e204fe87ee6bbfd8f364.jpg?v=1794184245</image:loc>
      <image:title>Camera image flickers: causes and fixes for mains beat and triggers</image:title>
      <image:caption>Camera image flickers: causes and fixes for mains beat and triggers</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/camera-pose-rotation-vector-to-rotation-matrix-tvec-units</loc>
    <lastmod>2026-11-09T23:48:06-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-837873fa3c7c281da94e7c98.jpg?v=1794184489</image:loc>
      <image:title>Camera pose: rotation vector to rotation matrix, tvec units</image:title>
      <image:caption>Camera pose: rotation vector to rotation matrix, tvec units</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/stream-camera-images-to-disk-at-high-frame-rate</loc>
    <lastmod>2026-11-09T08:07:53-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-70736b4ee60dad9691bc8664.jpg?v=1794184544</image:loc>
      <image:title>Stream camera images to disk at high frame rate</image:title>
      <image:caption>Stream camera images to disk at high frame rate</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/reading-vertical-text-with-ocr-rotate-segment-constrain</loc>
    <lastmod>2026-11-09T14:22:41-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-9dad9d80dc05f904ff3654c2.jpg?v=1794184603</image:loc>
      <image:title>Reading vertical text with OCR: rotate, segment, constrain</image:title>
      <image:caption>Reading vertical text with OCR: rotate, segment, constrain</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/generate-negative-analog-sync-pulses-for-a-ccir-camera-from-a-daq-card</loc>
    <lastmod>2026-11-09T06:20:24-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-b72f23bf1f115aa7c2e818eb.jpg?v=1794184659</image:loc>
      <image:title>Generate negative analog sync pulses for a CCIR camera from a DAQ card</image:title>
      <image:caption>Generate negative analog sync pulses for a CCIR camera from a DAQ card</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/vision-inspection-deployment-workflow-keep-it-editable-or-freeze-it</loc>
    <lastmod>2026-11-09T14:31:28-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-2122ea12d6711036cbbe6d4b.jpg?v=1794184714</image:loc>
      <image:title>Vision inspection deployment workflow: keep it editable or freeze it</image:title>
      <image:caption>Vision inspection deployment workflow: keep it editable or freeze it</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/laptop-webcam-fails-in-depth-camera-viewers-why-it-crashes</loc>
    <lastmod>2026-11-10T00:11:07-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-e2a353839754a17117fce560.jpg?v=1794184971</image:loc>
      <image:title>Laptop webcam fails in depth camera viewers: why it crashes</image:title>
      <image:caption>Laptop webcam fails in depth camera viewers: why it crashes</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/poor-stereo-depth-quality-fix-calibration-and-focus-mismatch-first</loc>
    <lastmod>2026-11-08T19:43:47-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-d3fad992ca01a2b8a90e435d.jpg?v=1794185027</image:loc>
      <image:title>Poor stereo depth quality: fix calibration and focus mismatch first</image:title>
      <image:caption>Poor stereo depth quality: fix calibration and focus mismatch first</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/char-array-to-string-in-a-plc-data-block-fill-the-two-length-bytes</loc>
    <lastmod>2026-11-09T09:27:38-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-953a08439d51728c5c20968c.jpg?v=1794185084</image:loc>
      <image:title>CHAR array to STRING in a PLC data block: fill the two length bytes</image:title>
      <image:caption>CHAR array to STRING in a PLC data block: fill the two length bytes</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/wiring-a-barcode-scanner-to-an-hmi-serial-port-handshake-checks</loc>
    <lastmod>2026-11-09T09:18:26-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-0c6b0133de0cfc87ddcaa964.jpg?v=1794185140</image:loc>
      <image:title>Wiring a barcode scanner to an HMI serial port: handshake checks</image:title>
      <image:caption>Wiring a barcode scanner to an HMI serial port: handshake checks</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/barcode-reader-to-hmi-over-ethernet-fix-the-connection</loc>
    <lastmod>2026-11-09T09:10:39-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-cd29374489d2c63adc35f8c0.jpg?v=1794185194</image:loc>
      <image:title>Barcode reader to HMI over Ethernet: fix the connection</image:title>
      <image:caption>Barcode reader to HMI over Ethernet: fix the connection</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/stop-a-camera-safely-from-multiple-program-loops-without-a-crash</loc>
    <lastmod>2026-11-08T19:50:52-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-217e7d977c81fadd339913f1.jpg?v=1794185452</image:loc>
      <image:title>Stop a camera safely from multiple program loops without a crash</image:title>
      <image:caption>Stop a camera safely from multiple program loops without a crash</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/vidioc-s-fmt-device-or-resource-busy-two-nodes-opening-one-camera</loc>
    <lastmod>2026-11-08T19:51:48-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-1075040ced4bdcb519aaa0f8.jpg?v=1794185508</image:loc>
      <image:title>VIDIOC_S_FMT device or resource busy: two nodes opening one camera</image:title>
      <image:caption>VIDIOC_S_FMT device or resource busy: two nodes opening one camera</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/how-many-lumens-for-machine-vision-lighting-a-worked-example</loc>
    <lastmod>2026-11-09T08:13:24-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-de8415a7f54999735403a590.jpg?v=1794185565</image:loc>
      <image:title>How many lumens for machine vision lighting: a worked example</image:title>
      <image:caption>How many lumens for machine vision lighting: a worked example</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/color-stream-fps-lower-than-configured-on-a-depth-camera</loc>
    <lastmod>2026-11-09T04:30:56-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-ccfbde1df21e3a864d17c882.jpg?v=1794185621</image:loc>
      <image:title>Color stream fps lower than configured on a depth camera</image:title>
      <image:caption>Color stream fps lower than configured on a depth camera</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/robot-calibration-poses-move-on-a-sphere-predict-the-motion</loc>
    <lastmod>2026-11-09T01:33:39-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-d7aa950fc3495748ea450355.jpg?v=1794185677</image:loc>
      <image:title>Robot calibration poses move on a sphere: predict the motion</image:title>
      <image:caption>Robot calibration poses move on a sphere: predict the motion</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/inspect-two-sequential-images-from-one-camera-in-one-job</loc>
    <lastmod>2026-11-09T07:04:38-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-06bedba4ef322e8a165cde43.jpg?v=1794185936</image:loc>
      <image:title>Inspect two sequential images from one camera in one job</image:title>
      <image:caption>Inspect two sequential images from one camera in one job</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/convert-a-hand-eye-quaternion-to-a-transform-matrix</loc>
    <lastmod>2026-11-10T00:36:26-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-e731806861d994752d0926e0.jpg?v=1794185991</image:loc>
      <image:title>Convert a hand-eye quaternion to a transform matrix</image:title>
      <image:caption>Convert a hand-eye quaternion to a transform matrix</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/legacy-camera-driver-setup-get-old-cameras-capturing-again</loc>
    <lastmod>2026-11-09T21:54:04-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-bcb4e09b35691c2a9d9d35e6.jpg?v=1794186050</image:loc>
      <image:title>Legacy camera driver setup: get old cameras capturing again</image:title>
      <image:caption>Legacy camera driver setup: get old cameras capturing again</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/camera-driver-file-corrupted-reinstall-don-t-copy-files</loc>
    <lastmod>2026-11-09T15:53:57-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-e63886472eea387df3be2201.jpg?v=1794186105</image:loc>
      <image:title>Camera driver file corrupted: reinstall, don&apos;t copy files</image:title>
      <image:caption>Camera driver file corrupted: reinstall, don&apos;t copy files</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/machine-vision-trigger-timing-sequence-camera-light-and-reject-gate</loc>
    <lastmod>2026-11-09T10:33:37-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-5c9218c5aafc6efa2968e367.jpg?v=1794186205</image:loc>
      <image:title>Machine vision trigger timing: sequence camera, light and reject gate</image:title>
      <image:caption>Machine vision trigger timing: sequence camera, light and reject gate</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/get-the-first-image-on-an-embedded-vision-prototype</loc>
    <lastmod>2026-11-09T13:41:07-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-89e8f7d45e48d54e3e24d777.jpg?v=1794186477</image:loc>
      <image:title>Get the first image on an embedded vision prototype</image:title>
      <image:caption>Get the first image on an embedded vision prototype</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/multiple-usb-hid-devices-on-an-hmi-through-one-hub</loc>
    <lastmod>2026-11-09T10:01:08-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-5d24372fbabd9d8ca6349c46.jpg?v=1794186537</image:loc>
      <image:title>Multiple USB HID devices on an HMI through one hub</image:title>
      <image:caption>Multiple USB HID devices on an HMI through one hub</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/read-a-serial-barcode-scanner-in-visual-c-into-sql-server</loc>
    <lastmod>2026-11-08T20:09:55-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-de737c61ca145bcfa367f7a8.jpg?v=1794186595</image:loc>
      <image:title>Read a serial barcode scanner in Visual C++ into SQL Server</image:title>
      <image:caption>Read a serial barcode scanner in Visual C++ into SQL Server</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/depth-camera-emitter-on-off-cycling-wear-power-and-duty-cycle</loc>
    <lastmod>2026-11-09T03:39:38-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-0d7553f07e4241b17fc66205.jpg?v=1794186654</image:loc>
      <image:title>Depth camera emitter on/off cycling: wear, power and duty cycle</image:title>
      <image:caption>Depth camera emitter on/off cycling: wear, power and duty cycle</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/why-a-3d-laser-sensor-fails-its-own-startup-self-check</loc>
    <lastmod>2026-11-08T20:42:00-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-2da83e4627b7027d2f0cd1e7.jpg?v=1794186713</image:loc>
      <image:title>Why a 3D laser sensor fails its own startup self-check</image:title>
      <image:caption>Why a 3D laser sensor fails its own startup self-check</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/gige-camera-not-detected-in-max-on-a-crio-rt-target</loc>
    <lastmod>2026-11-08T23:18:37-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-17da100e0ac9bf0ea8a87007.jpg?v=1794186957</image:loc>
      <image:title>GigE camera not detected in MAX on a cRIO RT target</image:title>
      <image:caption>GigE camera not detected in MAX on a cRIO RT target</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/phase-shift-stripe-lighting-for-shallow-dents-and-sink-marks</loc>
    <lastmod>2026-11-09T14:41:53-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-aeef6b5d63f5e4edce6a74d5.jpg?v=1794187016</image:loc>
      <image:title>Phase shift stripe lighting for shallow dents and sink marks</image:title>
      <image:caption>Phase shift stripe lighting for shallow dents and sink marks</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/defect-detection-on-rounded-corners-with-uneven-lighting</loc>
    <lastmod>2026-11-09T04:37:47-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-7ce49f62f66c2fe23e88dede.jpg?v=1794187074</image:loc>
      <image:title>Defect detection on rounded corners with uneven lighting</image:title>
      <image:caption>Defect detection on rounded corners with uneven lighting</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/uneven-back-lighting-on-line-scan-cylinder-edges-causes-and-fixes</loc>
    <lastmod>2026-11-09T08:13:37-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-9164d659890fd626bc6c0844.jpg?v=1794187138</image:loc>
      <image:title>Uneven back lighting on line scan cylinder edges: causes and fixes</image:title>
      <image:caption>Uneven back lighting on line scan cylinder edges: causes and fixes</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/when-a-calculator-step-fails-handle-unavailable-variables</loc>
    <lastmod>2026-11-09T11:52:17-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-de56d6e043b32ed00d1db571.jpg?v=1794187196</image:loc>
      <image:title>When a calculator step fails: handle unavailable variables</image:title>
      <image:caption>When a calculator step fails: handle unavailable variables</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/dark-spot-from-the-camera-hole-in-dome-lights-how-to-fix-it</loc>
    <lastmod>2026-11-08T20:23:55-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-6c9af2a147d632022f33a5d1.jpg?v=1794187435</image:loc>
      <image:title>Dark spot from the camera hole in dome lights: how to fix it</image:title>
      <image:caption>Dark spot from the camera hole in dome lights: how to fix it</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/call-a-camera-sdk-snap-function-from-c-not-vb</loc>
    <lastmod>2026-11-09T15:53:57-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-ddf184223cfeaf4a79dbffb0.jpg?v=1794187492</image:loc>
      <image:title>Call a camera SDK snap function from C++ not VB</image:title>
      <image:caption>Call a camera SDK snap function from C++ not VB</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/inline-packaging-inspection-run-multiple-checks-and-track-each-unit</loc>
    <lastmod>2026-11-09T14:19:04-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-e9b28fca57403d647d6203bc.jpg?v=1794187550</image:loc>
      <image:title>Inline packaging inspection: run multiple checks and track each unit</image:title>
      <image:caption>Inline packaging inspection: run multiple checks and track each unit</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/one-camera-for-pick-and-place-and-barcode-scanning-the-shared-setup</loc>
    <lastmod>2026-11-09T00:18:54-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-198e29cdb9f2d64f708ca1d5.jpg?v=1794187608</image:loc>
      <image:title>One camera for pick and place and barcode scanning: the shared setup</image:title>
      <image:caption>One camera for pick and place and barcode scanning: the shared setup</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/line-scan-camera-illumination-techniques-bright-field-to-backlight</loc>
    <lastmod>2026-11-09T01:52:34-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-dbc4fa7c25cbd93bdf0378cd.jpg?v=1794187665</image:loc>
      <image:title>Line scan camera illumination techniques: bright field to backlight</image:title>
      <image:caption>Line scan camera illumination techniques: bright field to backlight</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/ocr-confusing-similar-characters-fix-resolution-and-contrast</loc>
    <lastmod>2026-11-09T20:55:08-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-63d59c9762639fb8c55ca163.jpg?v=1794187915</image:loc>
      <image:title>OCR confusing similar characters: fix resolution and contrast</image:title>
      <image:caption>OCR confusing similar characters: fix resolution and contrast</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/telecentric-lens-selection-match-magnification-and-image-circle</loc>
    <lastmod>2026-11-09T01:25:46-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-bebe766649b49ab15d7a35fd.jpg?v=1794187974</image:loc>
      <image:title>Telecentric lens selection: match magnification and image circle</image:title>
      <image:caption>Telecentric lens selection: match magnification and image circle</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/color-quantization-for-machine-vision-cut-pixel-data-keep-classes</loc>
    <lastmod>2026-11-09T07:55:04-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-d2ba334b06fbaee3fcd0abcb.jpg?v=1794188039</image:loc>
      <image:title>Color quantization for machine vision: cut pixel data, keep classes</image:title>
      <image:caption>Color quantization for machine vision: cut pixel data, keep classes</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/event-camera-bias-tuning-cut-noise-without-losing-motion</loc>
    <lastmod>2026-11-09T16:06:12-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-d6e20e7e59519182f889b0cd.jpg?v=1794188097</image:loc>
      <image:title>Event camera bias tuning: cut noise without losing motion</image:title>
      <image:caption>Event camera bias tuning: cut noise without losing motion</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/custom-lvds-data-acquisition-on-a-frame-grabber-emulate-camera-timing</loc>
    <lastmod>2026-11-08T20:35:57-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-e26cff87800b32c0081bc2fa.jpg?v=1794188157</image:loc>
      <image:title>Custom LVDS data acquisition on a frame grabber: emulate camera timing</image:title>
      <image:caption>Custom LVDS data acquisition on a frame grabber: emulate camera timing</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/split-a-16-bit-packed-stereo-frame-into-two-8-bit-images</loc>
    <lastmod>2026-11-09T16:55:34-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-5ad6cb1d3dced2bedff1a800.jpg?v=1794188400</image:loc>
      <image:title>Split a 16-bit packed stereo frame into two 8-bit images</image:title>
      <image:caption>Split a 16-bit packed stereo frame into two 8-bit images</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/trigger-an-external-instrument-from-a-frame-grabber-trigger-output</loc>
    <lastmod>2026-11-09T07:13:40-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-50036a8fb8f8196196aa89a4.jpg?v=1794188461</image:loc>
      <image:title>Trigger an external instrument from a frame grabber trigger output</image:title>
      <image:caption>Trigger an external instrument from a frame grabber trigger output</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/vibration-correction-in-3d-height-scans-a-laser-profiler-guide</loc>
    <lastmod>2026-11-09T17:46:03-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-84aa500a8ad3a75c37398940.jpg?v=1794188519</image:loc>
      <image:title>Vibration correction in 3D height scans: a laser profiler guide</image:title>
      <image:caption>Vibration correction in 3D height scans: a laser profiler guide</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/ocr-vs-ocv-character-inspection-for-date-and-lot-codes</loc>
    <lastmod>2026-11-09T13:32:02-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-2f7894acf9321d62e1349cbc.jpg?v=1794188581</image:loc>
      <image:title>OCR vs OCV: character inspection for date and lot codes</image:title>
      <image:caption>OCR vs OCV: character inspection for date and lot codes</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/burn-a-drawn-roi-into-a-grayscale-image-overlay-to-pixels</loc>
    <lastmod>2026-11-09T12:19:05-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-63e70109957ee9dba63e22ed.jpg?v=1794188637</image:loc>
      <image:title>Burn a drawn ROI into a grayscale image: overlay to pixels</image:title>
      <image:caption>Burn a drawn ROI into a grayscale image: overlay to pixels</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/depth-camera-pixel-size-estimate-it-from-field-of-view-and-resolution</loc>
    <lastmod>2026-11-10T00:35:12-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-0dea166ae31982b1b034df92.jpg?v=1794188881</image:loc>
      <image:title>Depth camera pixel size: estimate it from field of view and resolution</image:title>
      <image:caption>Depth camera pixel size: estimate it from field of view and resolution</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/partial-bright-field-lighting-why-matte-parts-need-directed-light</loc>
    <lastmod>2026-11-09T14:56:19-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-25b54697dc55312cb4559fce.jpg?v=1794188943</image:loc>
      <image:title>Partial bright field lighting: why matte parts need directed light</image:title>
      <image:caption>Partial bright field lighting: why matte parts need directed light</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/differential-line-input-voltage-limits-pin-to-ground-or-pair-to-pair</loc>
    <lastmod>2026-11-09T07:09:17-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-87aa8ed3c2d7238282aa4982.jpg?v=1794189001</image:loc>
      <image:title>Differential line input voltage limits: pin-to-ground or pair-to-pair</image:title>
      <image:caption>Differential line input voltage limits: pin-to-ground or pair-to-pair</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/deploy-a-dll-to-an-embedded-vision-target-and-make-it-load</loc>
    <lastmod>2026-11-09T09:00:40-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-14078af1542bdc5c9d90fd7a.jpg?v=1794189058</image:loc>
      <image:title>Deploy a DLL to an embedded vision target and make it load</image:title>
      <image:caption>Deploy a DLL to an embedded vision target and make it load</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/save-a-webcam-image-as-a-golden-template-fix-black-frames</loc>
    <lastmod>2026-11-09T23:22:09-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-2a41429f8bbb17b902414378.jpg?v=1794189113</image:loc>
      <image:title>Save a webcam image as a golden template: fix black frames</image:title>
      <image:caption>Save a webcam image as a golden template: fix black frames</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/machine-vision-lens-anatomy-what-each-part-of-the-barrel-does</loc>
    <lastmod>2026-11-09T02:55:33-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-36322060ef86240e3ea1d89a.jpg?v=1794189356</image:loc>
      <image:title>Machine vision lens anatomy: what each part of the barrel does</image:title>
      <image:caption>Machine vision lens anatomy: what each part of the barrel does</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/dll-not-loading-on-a-vision-controller-match-the-target-os</loc>
    <lastmod>2026-11-09T11:52:08-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-d051d7b28bd363e9f7f383ef.jpg?v=1794189418</image:loc>
      <image:title>DLL not loading on a vision controller: match the target OS</image:title>
      <image:caption>DLL not loading on a vision controller: match the target OS</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/camera-roi-and-frame-rate-width-cuts-help-cmos-not-ccd</loc>
    <lastmod>2026-11-09T18:05:12-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-78d84835b0273071c1b69b9e.jpg?v=1794189479</image:loc>
      <image:title>Camera ROI and frame rate: width cuts help CMOS, not CCD</image:title>
      <image:caption>Camera ROI and frame rate: width cuts help CMOS, not CCD</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/camera-imu-rototranslation-calibration-build-the-transform</loc>
    <lastmod>2026-11-10T00:11:06-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-f0dcbda56be13ed1b819db1a.jpg?v=1794189537</image:loc>
      <image:title>Camera IMU rototranslation calibration: build the transform</image:title>
      <image:caption>Camera IMU rototranslation calibration: build the transform</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/fix-shared-library-error-7-file-not-found-in-vision-software</loc>
    <lastmod>2026-11-09T08:21:01-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-f5e5c9f8d992c4f23a3284d1.jpg?v=1794189596</image:loc>
      <image:title>Fix shared library error 7: file not found in vision software</image:title>
      <image:caption>Fix shared library error 7: file not found in vision software</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/external-sync-for-a-digital-camera-vs-analog-hsync-and-vsync</loc>
    <lastmod>2026-11-08T21:03:55-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-142a5bcb54fb88b111f7b16b.jpg?v=1794189835</image:loc>
      <image:title>External sync for a digital camera vs analog HSYNC and VSYNC</image:title>
      <image:caption>External sync for a digital camera vs analog HSYNC and VSYNC</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/how-to-get-an-ip65-rated-machine-vision-camera-for-washdown</loc>
    <lastmod>2026-11-09T01:33:33-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-967a798348c20d80d9d0d37f.jpg?v=1794189893</image:loc>
      <image:title>How to get an IP65 rated machine vision camera for washdown</image:title>
      <image:caption>How to get an IP65 rated machine vision camera for washdown</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/lithium-ion-battery-electrode-web-inspection-with-line-scan-lighting</loc>
    <lastmod>2026-11-09T16:01:43-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-53561c6d08ee37129db88d16.jpg?v=1794189960</image:loc>
      <image:title>Lithium-ion battery electrode web inspection with line scan lighting</image:title>
      <image:caption>Lithium-ion battery electrode web inspection with line scan lighting</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/image-distortion-low-or-high-in-camera-calibration-which-to-pick</loc>
    <lastmod>2026-11-09T00:48:10-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-df08284befe5320f72d45ebf.jpg?v=1794190022</image:loc>
      <image:title>Image distortion low or high in camera calibration: which to pick</image:title>
      <image:caption>Image distortion low or high in camera calibration: which to pick</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/gige-camera-buffer-was-incompletely-grabbed-fix-lost-packets</loc>
    <lastmod>2026-11-09T21:54:03-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-cd5a75de84097f73613e0ff8.jpg?v=1794190080</image:loc>
      <image:title>GigE camera buffer was incompletely grabbed: fix lost packets</image:title>
      <image:caption>GigE camera buffer was incompletely grabbed: fix lost packets</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/uvc-camera-exposure-log2-units-why-0-125-s-becomes-0-25-s</loc>
    <lastmod>2026-11-09T04:19:23-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-6b9d5dc67bff0206a2355e66.jpg?v=1794190370</image:loc>
      <image:title>UVC camera exposure log2 units: why 0.125 s becomes 0.25 s</image:title>
      <image:caption>UVC camera exposure log2 units: why 0.125 s becomes 0.25 s</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/depth-camera-calibration-reverts-to-factory-push-the-saved-table</loc>
    <lastmod>2026-11-08T21:13:49-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-2f28c5a69870374f36639144.jpg?v=1794190429</image:loc>
      <image:title>Depth camera calibration reverts to factory: push the saved table</image:title>
      <image:caption>Depth camera calibration reverts to factory: push the saved table</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/libegl-renderd128-permission-denied-why-depth-alignment-hits-the-cpu</loc>
    <lastmod>2026-11-09T23:36:07-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-9bb484b3f33fb34c5ca570c8.jpg?v=1794190488</image:loc>
      <image:title>libEGL renderD128 permission denied: why depth alignment hits the CPU</image:title>
      <image:caption>libEGL renderD128 permission denied: why depth alignment hits the CPU</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/smart-camera-not-connecting-fix-ip-and-subnet-mismatches</loc>
    <lastmod>2026-11-09T12:14:58-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-4b310c38eb972b7ea3debf0c.jpg?v=1794190545</image:loc>
      <image:title>Smart camera not connecting: fix IP and subnet mismatches</image:title>
      <image:caption>Smart camera not connecting: fix IP and subnet mismatches</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/new-camera-matrix-after-undistortion-how-the-principal-point-moves</loc>
    <lastmod>2026-11-08T21:16:41-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-9e20ac511d2afa602d957d8e.jpg?v=1794190601</image:loc>
      <image:title>New camera matrix after undistortion: how the principal point moves</image:title>
      <image:caption>New camera matrix after undistortion: how the principal point moves</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/bandpass-filter-with-red-led-light-to-block-ambient-light</loc>
    <lastmod>2026-11-09T05:38:46-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-5ddf197060d6e6dfc5e81ef6.jpg?v=1794190854</image:loc>
      <image:title>Bandpass filter with red LED light to block ambient light</image:title>
      <image:caption>Bandpass filter with red LED light to block ambient light</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/frame-grabber-can-t-lock-on-video-source-sync-and-power-checks</loc>
    <lastmod>2026-11-08T21:21:50-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-d50a69bb82bff153258ac4f4.jpg?v=1794190910</image:loc>
      <image:title>Frame grabber can&apos;t lock on video source: sync and power checks</image:title>
      <image:caption>Frame grabber can&apos;t lock on video source: sync and power checks</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/camera-specific-attributes-from-c-managed-wrapper-or-p-invoke</loc>
    <lastmod>2026-11-09T11:36:28-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-f1742574c8ede526ff67e6b8.jpg?v=1794191016</image:loc>
      <image:title>Camera-specific attributes from C#: managed wrapper or P/Invoke</image:title>
      <image:caption>Camera-specific attributes from C#: managed wrapper or P/Invoke</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/barcode-reader-sends-hex-data-convert-words-to-ascii-text</loc>
    <lastmod>2026-11-09T08:31:25-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-ec5c1d1002e2cdec8015990b.jpg?v=1794191075</image:loc>
      <image:title>Barcode reader sends hex data: convert words to ASCII text</image:title>
      <image:caption>Barcode reader sends hex data: convert words to ASCII text</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/connect-multiple-3d-cameras-to-one-pc-sequence-and-ip-rules</loc>
    <lastmod>2026-11-09T09:08:20-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-41ac5063f284684c8cdcddcc.jpg?v=1794191131</image:loc>
      <image:title>Connect multiple 3D cameras to one PC: sequence and IP rules</image:title>
      <image:caption>Connect multiple 3D cameras to one PC: sequence and IP rules</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/unpack-mono12p-to-a-16-bit-image-from-the-raw-buffer</loc>
    <lastmod>2026-11-08T21:29:50-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-707b37d911da243b1b5f7297.jpg?v=1794191390</image:loc>
      <image:title>Unpack Mono12p to a 16-bit image from the raw buffer</image:title>
      <image:caption>Unpack Mono12p to a 16-bit image from the raw buffer</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/board-level-cameras-for-stereo-photogrammetry-sync-and-timestamps</loc>
    <lastmod>2026-11-09T16:38:13-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-f182061e2d5fbf71d64c7f6b.jpg?v=1794191447</image:loc>
      <image:title>Board level cameras for stereo photogrammetry: sync and timestamps</image:title>
      <image:caption>Board level cameras for stereo photogrammetry: sync and timestamps</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/green-screen-then-usb-camera-disconnect-on-linux-fix-it</loc>
    <lastmod>2026-11-09T10:58:10-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-57b58dbe17fde2f9faae9571.jpg?v=1794191503</image:loc>
      <image:title>Green screen then USB camera disconnect on Linux: fix it</image:title>
      <image:caption>Green screen then USB camera disconnect on Linux: fix it</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/latest-image-only-returns-duplicate-frames-drain-the-buffer-queue</loc>
    <lastmod>2026-11-09T22:06:12-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-859aca4e535cfb38274bdeed.jpg?v=1794191559</image:loc>
      <image:title>Latest image only returns duplicate frames: drain the buffer queue</image:title>
      <image:caption>Latest image only returns duplicate frames: drain the buffer queue</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/embed-a-camera-image-in-your-hmi-panel-with-cursors-and-zoom</loc>
    <lastmod>2026-11-09T06:37:36-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-febc028511b0b46ad1742d01.jpg?v=1794191614</image:loc>
      <image:title>Embed a camera image in your HMI panel with cursors and zoom</image:title>
      <image:caption>Embed a camera image in your HMI panel with cursors and zoom</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/reuse-image-references-in-a-labview-loop-not-per-iteration</loc>
    <lastmod>2026-11-09T21:02:02-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-17032489cc38feddbb7e624b.jpg?v=1794191871</image:loc>
      <image:title>Reuse image references in a LabVIEW loop, not per iteration</image:title>
      <image:caption>Reuse image references in a LabVIEW loop, not per iteration</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/corrupt-system-dll-error-in-vision-software-the-safe-fix</loc>
    <lastmod>2026-11-09T14:11:47-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-4e9b5a56c4ccb2865352e520.jpg?v=1794191925</image:loc>
      <image:title>Corrupt system DLL error in vision software: the safe fix</image:title>
      <image:caption>Corrupt system DLL error in vision software: the safe fix</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/remote-client-no-video-put-the-display-window-on-the-front-panel</loc>
    <lastmod>2026-11-09T09:00:45-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-b7fccc360b023ae9174b9958.jpg?v=1794191980</image:loc>
      <image:title>Remote client no video? Put the display window on the front panel</image:title>
      <image:caption>Remote client no video? Put the display window on the front panel</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/camera-image-buffer-vs-serial-file-access-buffer-what-your-data-uses</loc>
    <lastmod>2026-11-09T06:29:06-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-2248d56c93f2cf08c5d362ec.jpg?v=1794192041</image:loc>
      <image:title>Camera image buffer vs serial file access buffer: what your data uses</image:title>
      <image:caption>Camera image buffer vs serial file access buffer: what your data uses</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/usb3-vision-device-response-timeout-cap-the-bulk-transfer-wait</loc>
    <lastmod>2026-11-09T19:27:29-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-37f553db9179891466541b4f.jpg?v=1794192101</image:loc>
      <image:title>USB3 Vision device response timeout: cap the bulk-transfer wait</image:title>
      <image:caption>USB3 Vision device response timeout: cap the bulk-transfer wait</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/read-barcodes-on-a-vision-controller-from-scratch</loc>
    <lastmod>2026-11-09T14:00:27-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-49994f717fa7c97bf44a62ae.jpg?v=1794192352</image:loc>
      <image:title>Read barcodes on a vision controller from scratch</image:title>
      <image:caption>Read barcodes on a vision controller from scratch</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/how-to-convert-pointcloud2-to-a-point-cloud-for-calibration</loc>
    <lastmod>2026-11-09T23:29:06-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-876a3dc2dc16de19f30ad6ab.jpg?v=1794192408</image:loc>
      <image:title>How to convert PointCloud2 to a point cloud for calibration</image:title>
      <image:caption>How to convert PointCloud2 to a point cloud for calibration</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/gentl-buffer-padding-y-not-implemented-fix-the-fetch-crash</loc>
    <lastmod>2026-11-09T04:03:45-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-95b5189fd6f791df1301691e.jpg?v=1794192464</image:loc>
      <image:title>GenTL buffer padding_y not implemented: fix the fetch crash</image:title>
      <image:caption>GenTL buffer padding_y not implemented: fix the fetch crash</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/camera-calibration-returns-five-distortion-coefficients-fix-k3</loc>
    <lastmod>2026-11-08T21:48:41-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-7f71005be3d510bbf2dabfc0.jpg?v=1794192521</image:loc>
      <image:title>Camera calibration returns five distortion coefficients: fix k3</image:title>
      <image:caption>Camera calibration returns five distortion coefficients: fix k3</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/firmware-update-broke-your-python-vision-script-fix-the-api-call</loc>
    <lastmod>2026-11-09T14:31:24-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-aae1ce70e99f6e7f6c8e28fb.jpg?v=1794192577</image:loc>
      <image:title>Firmware update broke your Python vision script: fix the API call</image:title>
      <image:caption>Firmware update broke your Python vision script: fix the API call</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/bayer-decode-from-raw-image-data-when-the-driver-demosaics-anyway</loc>
    <lastmod>2026-11-09T18:05:11-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-92a8ef792d703e5b080b6de7.jpg?v=1794192844</image:loc>
      <image:title>Bayer decode from raw image data when the driver demosaics anyway</image:title>
      <image:caption>Bayer decode from raw image data when the driver demosaics anyway</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/yolov5-to-npu-integration-keep-your-opencv-tracking-intact</loc>
    <lastmod>2026-11-09T21:02:04-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-ee3970aeb5273d25c30c3b43.jpg?v=1794192903</image:loc>
      <image:title>YOLOv5 to NPU integration: keep your OpenCV tracking intact</image:title>
      <image:caption>YOLOv5 to NPU integration: keep your OpenCV tracking intact</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/usb3-vision-payload-transfer-size-what-the-device-must-report</loc>
    <lastmod>2026-11-09T17:01:22-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-ca5c3e2fe4c9547be35e0b14.jpg?v=1794192961</image:loc>
      <image:title>USB3 Vision payload transfer size: what the device must report</image:title>
      <image:caption>USB3 Vision payload transfer size: what the device must report</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/sequential-exposure-time-mode-how-depth-cameras-beat-mixed-scenes</loc>
    <lastmod>2026-11-08T21:56:58-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-722299174c04944f5033034c.jpg?v=1794193018</image:loc>
      <image:title>Sequential exposure time mode: how depth cameras beat mixed scenes</image:title>
      <image:caption>Sequential exposure time mode: how depth cameras beat mixed scenes</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/food-packaging-inspection-lighting-choose-by-surface-and-defect</loc>
    <lastmod>2026-11-09T08:13:22-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-927bdc1317f5a41ce4c4f564.jpg?v=1794193080</image:loc>
      <image:title>Food packaging inspection lighting: choose by surface and defect</image:title>
      <image:caption>Food packaging inspection lighting: choose by surface and defect</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/machine-vision-connectivity-standards-what-each-one-does</loc>
    <lastmod>2026-11-09T11:36:29-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-5ed054473077849c1b2f24f5.jpg?v=1794193312</image:loc>
      <image:title>Machine vision connectivity standards: what each one does</image:title>
      <image:caption>Machine vision connectivity standards: what each one does</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/lens-relative-illumination-and-cos4-roll-off-explained</loc>
    <lastmod>2026-11-09T05:15:50-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-65861791c6c5ef185b360b61.jpg?v=1794193371</image:loc>
      <image:title>Lens relative illumination and cos4 roll-off explained</image:title>
      <image:caption>Lens relative illumination and cos4 roll-off explained</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/dpkg-s-no-path-found-fix-shared-library-package-deps</loc>
    <lastmod>2026-11-09T21:01:59-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-385f0f5da9153c09dacc4377.jpg?v=1794193429</image:loc>
      <image:title>dpkg -S no path found: fix shared library package deps</image:title>
      <image:caption>dpkg -S no path found: fix shared library package deps</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/lens-resolution-vs-pixel-size-matching-mtf-to-your-sensor</loc>
    <lastmod>2026-11-09T14:59:58-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-454d641f1df69eeef7880fde.jpg?v=1794193486</image:loc>
      <image:title>Lens resolution vs pixel size: matching MTF to your sensor</image:title>
      <image:caption>Lens resolution vs pixel size: matching MTF to your sensor</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/hand-eye-calibration-orientation-error-fix-the-quaternion-mismatch</loc>
    <lastmod>2026-11-09T13:55:00-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-49e1b0fc7a20442f96cc6582.jpg?v=1794193544</image:loc>
      <image:title>Hand-eye calibration orientation error: fix the quaternion mismatch</image:title>
      <image:caption>Hand-eye calibration orientation error: fix the quaternion mismatch</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/dark-frame-subtraction-for-fixed-pattern-noise-how-many-frames</loc>
    <lastmod>2026-11-08T22:09:50-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-178d6ba43bc72464eb8f9a69.jpg?v=1794193790</image:loc>
      <image:title>Dark frame subtraction for fixed pattern noise: how many frames</image:title>
      <image:caption>Dark frame subtraction for fixed pattern noise: how many frames</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/how-to-mix-camera-brands-in-one-vision-software-stack</loc>
    <lastmod>2026-11-09T09:53:21-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-d54f2ca243a7e320a4f22195.jpg?v=1794193845</image:loc>
      <image:title>How to mix camera brands in one vision software stack</image:title>
      <image:caption>How to mix camera brands in one vision software stack</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/wavelength-effect-on-image-resolution-short-light-finer-detail</loc>
    <lastmod>2026-11-08T22:34:54-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-0d6462baebd8c66c2ed8c828.jpg?v=1794193903</image:loc>
      <image:title>Wavelength effect on image resolution: short light, finer detail</image:title>
      <image:caption>Wavelength effect on image resolution: short light, finer detail</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/machine-vision-lighting-test-from-bench-to-production-line</loc>
    <lastmod>2026-11-09T00:23:04-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-790af5a167c6b6fdd3c8ff65.jpg?v=1794193958</image:loc>
      <image:title>Machine vision lighting test: from bench to production line</image:title>
      <image:caption>Machine vision lighting test: from bench to production line</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/on-sensor-ai-cameras-when-to-infer-at-the-camera-or-the-host</loc>
    <lastmod>2026-11-09T20:15:22-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-d4f44c9f77cc1fed5f85a6b0.jpg?v=1794194016</image:loc>
      <image:title>On-sensor AI cameras: when to infer at the camera or the host</image:title>
      <image:caption>On-sensor AI cameras: when to infer at the camera or the host</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/3d-scan-based-robot-path-correction-hitting-0-2-mm-over-2-m</loc>
    <lastmod>2026-11-09T08:13:19-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-6e34f9e1d8152fd95099d605.jpg?v=1794194269</image:loc>
      <image:title>3D scan based robot path correction: hitting ±0.2 mm over 2 m</image:title>
      <image:caption>3D scan based robot path correction: hitting ±0.2 mm over 2 m</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/direct-incident-light-in-machine-vision-when-it-works-and-fails</loc>
    <lastmod>2026-11-09T15:52:41-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-eccfb8661bc7c3d14f33c582.jpg?v=1794194332</image:loc>
      <image:title>Direct incident light in machine vision: when it works and fails</image:title>
      <image:caption>Direct incident light in machine vision: when it works and fails</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/machine-vision-light-wavelengths-pick-the-led-band-for-your-part</loc>
    <lastmod>2026-11-09T14:56:19-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-321c8da8f007f9db66719b59.jpg?v=1794194398</image:loc>
      <image:title>Machine vision light wavelengths: pick the LED band for your part</image:title>
      <image:caption>Machine vision light wavelengths: pick the LED band for your part</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/trigger-multiple-cameras-from-one-opto-isolated-output-without-sag</loc>
    <lastmod>2026-11-09T08:22:12-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-55bfe9229b78d715c8614e2d.jpg?v=1794194462</image:loc>
      <image:title>Trigger multiple cameras from one opto-isolated output without sag</image:title>
      <image:caption>Trigger multiple cameras from one opto-isolated output without sag</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/image-to-map-homography-map-tracking-points-onto-a-ground-plane</loc>
    <lastmod>2026-11-08T22:21:57-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-12733d02fe0eb6cdfcaac17f.jpg?v=1794194517</image:loc>
      <image:title>Image to map homography: map tracking points onto a ground plane</image:title>
      <image:caption>Image to map homography: map tracking points onto a ground plane</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/bin-picking-reflective-metal-parts-getting-usable-3d-data</loc>
    <lastmod>2026-11-08T22:26:12-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-4575dc7188adedbeea98599a.jpg?v=1794194771</image:loc>
      <image:title>Bin picking reflective metal parts: getting usable 3D data</image:title>
      <image:caption>Bin picking reflective metal parts: getting usable 3D data</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/chunk-data-on-camera-frames-carry-timestamp-and-exposure-per-image</loc>
    <lastmod>2026-11-08T22:27:09-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-79c26d0eb5d5c623c3d8a031.jpg?v=1794194829</image:loc>
      <image:title>Chunk data on camera frames: carry timestamp and exposure per image</image:title>
      <image:caption>Chunk data on camera frames: carry timestamp and exposure per image</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/how-to-measure-500-micron-laser-drilled-holes-with-machine-vision</loc>
    <lastmod>2026-11-08T22:28:07-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-8bd831a52efe26157962c439.jpg?v=1794194887</image:loc>
      <image:title>How to measure 500 micron laser-drilled holes with machine vision</image:title>
      <image:caption>How to measure 500 micron laser-drilled holes with machine vision</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/camera-gamma-correction-what-the-gamma-parameter-changes</loc>
    <lastmod>2026-11-09T13:05:16-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-cc23a7644906854e168c358b.jpg?v=1794194946</image:loc>
      <image:title>Camera gamma correction: what the gamma parameter changes</image:title>
      <image:caption>Camera gamma correction: what the gamma parameter changes</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/aruco-marker-pick-and-place-from-marker-pose-to-grasp</loc>
    <lastmod>2026-11-09T07:27:00-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-5a4c8368727074392ebf0c21.jpg?v=1794195003</image:loc>
      <image:title>ArUco marker pick and place: from marker pose to grasp</image:title>
      <image:caption>ArUco marker pick and place: from marker pose to grasp</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/crack-width-measurement-from-an-image-in-pixels-and-mm</loc>
    <lastmod>2026-11-09T01:17:51-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-3545e3e5b881eda28502838c.jpg?v=1794195290</image:loc>
      <image:title>Crack width measurement from an image in pixels and mm</image:title>
      <image:caption>Crack width measurement from an image in pixels and mm</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/embedded-isp-vs-gpu-for-raw-image-processing-on-an-soc</loc>
    <lastmod>2026-11-09T09:19:37-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-9e3ebb4fefa2b23815b29da4.jpg?v=1794195348</image:loc>
      <image:title>Embedded ISP vs GPU for raw image processing on an SoC</image:title>
      <image:caption>Embedded ISP vs GPU for raw image processing on an SoC</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/opencv-segmentation-fault-on-a-csi-camera-fix-the-gstreamer-caps</loc>
    <lastmod>2026-11-08T23:02:55-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-a0cce1e8d319d2a1341b562d.jpg?v=1794195409</image:loc>
      <image:title>OpenCV segmentation fault on a CSI camera: fix the GStreamer caps</image:title>
      <image:caption>OpenCV segmentation fault on a CSI camera: fix the GStreamer caps</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/get-the-intrinsic-matrix-of-a-multi-camera-360-rig-from-its-sdk</loc>
    <lastmod>2026-11-09T09:26:24-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-1c26022232affd39cb255476.jpg?v=1794195463</image:loc>
      <image:title>Get the intrinsic matrix of a multi-camera 360 rig from its SDK</image:title>
      <image:caption>Get the intrinsic matrix of a multi-camera 360 rig from its SDK</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/empty-shelf-detection-with-a-depth-camera-depth-threshold-vs-markers</loc>
    <lastmod>2026-11-08T23:31:52-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-5c8ea238c84f42b1cb452702.jpg?v=1794195519</image:loc>
      <image:title>Empty shelf detection with a depth camera: depth threshold vs markers</image:title>
      <image:caption>Empty shelf detection with a depth camera: depth threshold vs markers</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/gige-vision-camera-connection-without-broadcast-discovery-what-works</loc>
    <lastmod>2026-11-08T22:42:51-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-77724f0147b092c4e5444901.jpg?v=1794195771</image:loc>
      <image:title>GigE Vision camera connection without broadcast discovery: what works</image:title>
      <image:caption>GigE Vision camera connection without broadcast discovery: what works</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/roundness-error-measurement-from-a-3d-scan-four-fitting-methods</loc>
    <lastmod>2026-11-09T06:57:49-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-c140bdd5d8b1f1b5da506be9.jpg?v=1794195827</image:loc>
      <image:title>Roundness error measurement from a 3D scan: four fitting methods</image:title>
      <image:caption>Roundness error measurement from a 3D scan: four fitting methods</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/docker-vision-service-fails-on-boot-order-the-startup-dependencies</loc>
    <lastmod>2026-11-08T22:44:47-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-861f4c06dc0b7fa9a6672538.jpg?v=1794195887</image:loc>
      <image:title>Docker vision service fails on boot: order the startup dependencies</image:title>
      <image:caption>Docker vision service fails on boot: order the startup dependencies</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/edge-based-template-matching-steps-for-bottle-detection</loc>
    <lastmod>2026-11-08T22:45:43-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-562554052e3860cfb18c36a6.jpg?v=1794195943</image:loc>
      <image:title>Edge based template matching steps for bottle detection</image:title>
      <image:caption>Edge based template matching steps for bottle detection</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/nir-fluorescence-imaging-band-selection-at-800-nm</loc>
    <lastmod>2026-11-09T05:43:09-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-58c01376ed3d4cc6480c1de5.jpg?v=1794196002</image:loc>
      <image:title>NIR fluorescence imaging band selection at 800 nm</image:title>
      <image:caption>NIR fluorescence imaging band selection at 800 nm</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/stereo-calibration-with-fixed-intrinsics-extrinsics-only</loc>
    <lastmod>2026-11-10T00:11:07-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-572ec37c218087f166963dbc.jpg?v=1794196249</image:loc>
      <image:title>Stereo calibration with fixed intrinsics: extrinsics only</image:title>
      <image:caption>Stereo calibration with fixed intrinsics: extrinsics only</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/save-grayscale-camera-frames-as-bmp-to-an-sd-card</loc>
    <lastmod>2026-11-09T06:22:45-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-32188cef0b7c2c45847cbc20.jpg?v=1794196308</image:loc>
      <image:title>Save grayscale camera frames as BMP to an SD card</image:title>
      <image:caption>Save grayscale camera frames as BMP to an SD card</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/c-mount-camera-on-a-telescope-adapters-and-back-focus</loc>
    <lastmod>2026-11-08T22:52:44-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-b13acbe260949cacc87e87b1.jpg?v=1794196364</image:loc>
      <image:title>C-mount camera on a telescope: adapters and back focus</image:title>
      <image:caption>C-mount camera on a telescope: adapters and back focus</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/gige-vision-camera-not-detected-in-software-fix-the-enumeration-chain</loc>
    <lastmod>2026-11-09T17:42:05-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-74268fd9b30cdbdd94b34969.jpg?v=1794196421</image:loc>
      <image:title>GigE Vision camera not detected in software: fix the enumeration chain</image:title>
      <image:caption>GigE Vision camera not detected in software: fix the enumeration chain</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/lens-distortion-vector-map-visualize-calibration-shift-per-pixel</loc>
    <lastmod>2026-11-08T22:54:39-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-efdadcf543b69d078637f5ec.jpg?v=1794196479</image:loc>
      <image:title>Lens distortion vector map: visualize calibration shift per pixel</image:title>
      <image:caption>Lens distortion vector map: visualize calibration shift per pixel</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/set-the-camera-timestamp-over-usb3-vision-not-uart-lines</loc>
    <lastmod>2026-11-09T17:18:17-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-9cf9b905cb591976dbc4bc1e.jpg?v=1794196732</image:loc>
      <image:title>Set the camera timestamp over USB3 Vision, not UART lines</image:title>
      <image:caption>Set the camera timestamp over USB3 Vision, not UART lines</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/black-depth-image-on-a-textureless-surface-stereo-needs-ir-texture</loc>
    <lastmod>2026-11-09T17:45:59-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-180c8ccab5ce54fe43c3062e.jpg?v=1794196793</image:loc>
      <image:title>Black depth image on a textureless surface: stereo needs IR texture</image:title>
      <image:caption>Black depth image on a textureless surface: stereo needs IR texture</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/install-32-bit-and-64-bit-vision-libraries-side-by-side-on-one-pc</loc>
    <lastmod>2026-11-09T13:26:51-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-f2bd646e5baef22686ad520f.jpg?v=1794196853</image:loc>
      <image:title>Install 32-bit and 64-bit vision libraries side by side on one PC</image:title>
      <image:caption>Install 32-bit and 64-bit vision libraries side by side on one PC</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/camera-restarts-between-captures-keep-the-stream-alive</loc>
    <lastmod>2026-11-09T13:42:19-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-44bb8aa2029b6452414a5593.jpg?v=1794196909</image:loc>
      <image:title>Camera restarts between captures: keep the stream alive</image:title>
      <image:caption>Camera restarts between captures: keep the stream alive</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/gstreamer-pipeline-strings-for-on-board-camera-capture-explained</loc>
    <lastmod>2026-11-09T08:23:17-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-47021f07f451343347759b4b.jpg?v=1794196973</image:loc>
      <image:title>GStreamer pipeline strings for on-board camera capture explained</image:title>
      <image:caption>GStreamer pipeline strings for on-board camera capture explained</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/find-rectangle-edges-and-corners-in-an-image</loc>
    <lastmod>2026-11-09T07:03:25-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-18f22576cc9081041cad9c1b.jpg?v=1794197209</image:loc>
      <image:title>Find rectangle edges and corners in an image</image:title>
      <image:caption>Find rectangle edges and corners in an image</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/apriltag-undefined-reference-in-ros2-link-the-c-library-in-cmake</loc>
    <lastmod>2026-11-10T00:50:07-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-bf4c6e009bd24635a856ba87.jpg?v=1794197268</image:loc>
      <image:title>Apriltag undefined reference in ROS2: link the C library in CMake</image:title>
      <image:caption>Apriltag undefined reference in ROS2: link the C library in CMake</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/opencl-on-but-processing-slow-when-gpu-offload-actually-helps</loc>
    <lastmod>2026-11-09T08:07:52-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-109f57b017e89527191b04a5.jpg?v=1794197327</image:loc>
      <image:title>OpenCL on but processing slow: when GPU offload actually helps</image:title>
      <image:caption>OpenCL on but processing slow: when GPU offload actually helps</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/onnx-detection-on-a-camera-stream-in-python-the-full-loop</loc>
    <lastmod>2026-11-09T17:18:16-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-98d6383992da92fd66ff2498.jpg?v=1794197387</image:loc>
      <image:title>ONNX detection on a camera stream in Python: the full loop</image:title>
      <image:caption>ONNX detection on a camera stream in Python: the full loop</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/identical-usb-camera-timeout-a-swap-test-isolates-the-ffc-cable</loc>
    <lastmod>2026-11-08T23:10:45-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-5ad7b77434325b0587c1f329.jpg?v=1794197445</image:loc>
      <image:title>Identical USB camera timeout: a swap test isolates the FFC cable</image:title>
      <image:caption>Identical USB camera timeout: a swap test isolates the FFC cable</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/cross-compile-a-depth-camera-sdk-for-an-embedded-arm-linux-board</loc>
    <lastmod>2026-11-09T22:23:20-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-163dbaeb28f81d23d599b4e1.jpg?v=1794197691</image:loc>
      <image:title>Cross-compile a depth camera SDK for an embedded ARM Linux board</image:title>
      <image:caption>Cross-compile a depth camera SDK for an embedded ARM Linux board</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/depth-stream-missing-after-firmware-update-rebuild-the-driver-stack</loc>
    <lastmod>2026-11-09T22:46:12-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-d3f31d802ccd67aa04e63195.jpg?v=1794197747</image:loc>
      <image:title>Depth stream missing after firmware update: rebuild the driver stack</image:title>
      <image:caption>Depth stream missing after firmware update: rebuild the driver stack</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/calibration-reference-pose-changes-measurement-size-why-it-varies</loc>
    <lastmod>2026-11-09T05:15:30-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-5a657dd7058d85560d962419.jpg?v=1794197803</image:loc>
      <image:title>Calibration reference pose changes measurement size: why it varies</image:title>
      <image:caption>Calibration reference pose changes measurement size: why it varies</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/rosparam-set-says-unable-to-communicate-with-master-fix-the-timing</loc>
    <lastmod>2026-11-08T23:17:39-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-5aa32445d57220addcbc86ce.jpg?v=1794197859</image:loc>
      <image:title>Rosparam set says unable to communicate with master: fix the timing</image:title>
      <image:caption>Rosparam set says unable to communicate with master: fix the timing</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/camera-in-device-manager-but-not-in-your-sdk-the-missing-plugin</loc>
    <lastmod>2026-11-09T23:52:07-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-4ccde709f21132a5f1451c06.jpg?v=1794197914</image:loc>
      <image:title>Camera in Device Manager but not in your SDK: the missing plugin</image:title>
      <image:caption>Camera in Device Manager but not in your SDK: the missing plugin</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/fluorescence-imaging-with-a-cmos-camera-the-sensor-numbers</loc>
    <lastmod>2026-11-09T18:40:16-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-3be3befebcc70b517cc9b6ec.jpg?v=1794198167</image:loc>
      <image:title>Fluorescence imaging with a CMOS camera: the sensor numbers</image:title>
      <image:caption>Fluorescence imaging with a CMOS camera: the sensor numbers</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/ptp-timestamp-sync-for-gige-cameras-lidar-and-imu</loc>
    <lastmod>2026-11-08T23:23:46-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-55630b9449d9170c57b2dfb8.jpg?v=1794198226</image:loc>
      <image:title>PTP timestamp sync for GigE cameras, lidar and IMU</image:title>
      <image:caption>PTP timestamp sync for GigE cameras, lidar and IMU</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/camera-float-values-are-silently-snapped-to-the-nearest-increment</loc>
    <lastmod>2026-11-09T06:29:05-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-49d931c00d689a49ced12567.jpg?v=1794198283</image:loc>
      <image:title>Camera float values are silently snapped to the nearest increment</image:title>
      <image:caption>Camera float values are silently snapped to the nearest increment</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/mipi-camera-not-detected-i2c-bus-and-device-tree-checks</loc>
    <lastmod>2026-11-08T23:25:42-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-6a8b10e57a6c7fad20ff28dc.jpg?v=1794198342</image:loc>
      <image:title>MIPI camera not detected: I2C bus and device tree checks</image:title>
      <image:caption>MIPI camera not detected: I2C bus and device tree checks</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/read-distance-from-a-depth-image-pixel-without-an-sdk</loc>
    <lastmod>2026-11-08T23:26:40-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-fb3bc1cec567dee58dc57f78.jpg?v=1794198400</image:loc>
      <image:title>Read distance from a depth image pixel without an SDK</image:title>
      <image:caption>Read distance from a depth image pixel without an SDK</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/python-keyboard-module-has-no-is-pressed-fix-the-shadowed-import</loc>
    <lastmod>2026-11-09T14:40:38-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-e824b26f224e687d82f6a0db.jpg?v=1794198652</image:loc>
      <image:title>Python keyboard module has no is_pressed: fix the shadowed import</image:title>
      <image:caption>Python keyboard module has no is_pressed: fix the shadowed import</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/stereo-depth-camera-face-authentication-replace-a-face-id-module</loc>
    <lastmod>2026-11-09T22:46:12-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-91b23aee0f183590bfb6731b.jpg?v=1794198710</image:loc>
      <image:title>Stereo depth camera face authentication: replace a face ID module</image:title>
      <image:caption>Stereo depth camera face authentication: replace a face ID module</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/3d-camera-not-pingable-on-a-linux-controller-fix-subnet-and-link</loc>
    <lastmod>2026-11-09T23:09:22-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-6da04446dcff43e516e4c05a.jpg?v=1794198767</image:loc>
      <image:title>3D camera not pingable on a Linux controller: fix subnet and link</image:title>
      <image:caption>3D camera not pingable on a Linux controller: fix subnet and link</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/voice-coil-motor-autofocus-driver-init-fails-diagnose-the-i2c-fault</loc>
    <lastmod>2026-11-09T16:38:18-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-be05ca28e4516fd9ced56ee0.jpg?v=1794198827</image:loc>
      <image:title>Voice coil motor autofocus driver init fails: diagnose the I2C fault</image:title>
      <image:caption>Voice coil motor autofocus driver init fails: diagnose the I2C fault</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/depth-camera-not-detected-on-jetson-rebuild-the-sdk-cleanly</loc>
    <lastmod>2026-11-09T14:10:37-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-98b9ab2b909d85ab933dd24b.jpg?v=1794198884</image:loc>
      <image:title>Depth camera not detected on Jetson: rebuild the SDK cleanly</image:title>
      <image:caption>Depth camera not detected on Jetson: rebuild the SDK cleanly</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/optimal-image-downsample-factor-from-the-fourier-spectrum</loc>
    <lastmod>2026-11-09T13:23:21-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-eab9d626e2430440b4f67985.jpg?v=1794199132</image:loc>
      <image:title>Optimal image downsample factor from the Fourier spectrum</image:title>
      <image:caption>Optimal image downsample factor from the Fourier spectrum</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/test-3d-camera-code-without-hardware-record-and-replay-fixtures</loc>
    <lastmod>2026-11-10T00:36:32-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-d6db6da940cf2c4a162e7bb8.jpg?v=1794199191</image:loc>
      <image:title>Test 3D camera code without hardware: record and replay fixtures</image:title>
      <image:caption>Test 3D camera code without hardware: record and replay fixtures</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/stream-variable-image-sizes-over-gige-vision</loc>
    <lastmod>2026-11-10T00:13:37-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-5bb2fc99bf49d08a6c81c98c.jpg?v=1794199247</image:loc>
      <image:title>Stream variable image sizes over GigE Vision</image:title>
      <image:caption>Stream variable image sizes over GigE Vision</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/set-the-camera-auto-exposure-limit-instead-of-a-tuning-file</loc>
    <lastmod>2026-11-08T23:41:45-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-e4f090dfc7605436f19c44c6.jpg?v=1794199305</image:loc>
      <image:title>Set the camera auto exposure limit instead of a tuning file</image:title>
      <image:caption>Set the camera auto exposure limit instead of a tuning file</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/deep-learning-defect-inspection-on-large-8k-line-scan-images</loc>
    <lastmod>2026-11-08T23:42:42-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-8ca179136e50a0ba0c1767d5.jpg?v=1794199362</image:loc>
      <image:title>Deep learning defect inspection on large 8K line-scan images</image:title>
      <image:caption>Deep learning defect inspection on large 8K line-scan images</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/how-many-images-do-you-need-to-train-a-custom-yolo-dataset</loc>
    <lastmod>2026-11-09T07:03:26-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-2454183a056883664f74e7cd.jpg?v=1794199611</image:loc>
      <image:title>How many images do you need to train a custom YOLO dataset</image:title>
      <image:caption>How many images do you need to train a custom YOLO dataset</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/sensor-detected-but-frames-time-out-separating-i2c-from-mipi-failures</loc>
    <lastmod>2026-11-08T23:47:48-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-2a9e45142e8c3d2d34713f5f.jpg?v=1794199667</image:loc>
      <image:title>Sensor detected but frames time out: separating I2C from MIPI failures</image:title>
      <image:caption>Sensor detected but frames time out: separating I2C from MIPI failures</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/gige-camera-streaked-frames-on-an-embedded-board-test-the-link-first</loc>
    <lastmod>2026-11-09T10:12:29-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-23430a8ac8ac4d470e69e65e.jpg?v=1794199729</image:loc>
      <image:title>GigE camera streaked frames on an embedded board: test the link first</image:title>
      <image:caption>GigE camera streaked frames on an embedded board: test the link first</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/remove-the-ir-cut-filter-from-an-m12-lens-what-you-find-inside</loc>
    <lastmod>2026-11-09T16:00:26-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-c0603bbea1ee9c1974de7d20.jpg?v=1794199786</image:loc>
      <image:title>Remove the IR-cut filter from an M12 lens: what you find inside</image:title>
      <image:caption>Remove the IR-cut filter from an M12 lens: what you find inside</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/access-gige-cameras-from-another-subnet-without-direct-cabling</loc>
    <lastmod>2026-11-08T23:50:43-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-e3d4cf2ce905ea37c1dac892.jpg?v=1794199843</image:loc>
      <image:title>Access GigE cameras from another subnet without direct cabling</image:title>
      <image:caption>Access GigE cameras from another subnet without direct cabling</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/imu-read-rate-drops-during-video-streaming-why-and-the-fix</loc>
    <lastmod>2026-11-09T14:20:22-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-609e90c2260f5c6aeee68c42.jpg?v=1794200091</image:loc>
      <image:title>IMU read rate drops during video streaming: why and the fix</image:title>
      <image:caption>IMU read rate drops during video streaming: why and the fix</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/lighting-to-inspect-glass-inside-a-clear-plastic-enclosure</loc>
    <lastmod>2026-11-09T02:22:59-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-b718dcecff6c6b5fb59f5e61.jpg?v=1794200151</image:loc>
      <image:title>Lighting to inspect glass inside a clear plastic enclosure</image:title>
      <image:caption>Lighting to inspect glass inside a clear plastic enclosure</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/cordless-scanner-stops-reading-after-pairing-factory-default-fix</loc>
    <lastmod>2026-11-09T10:01:06-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-df9f319a153db299a6883425.jpg?v=1794200207</image:loc>
      <image:title>Cordless scanner stops reading after pairing: factory default fix</image:title>
      <image:caption>Cordless scanner stops reading after pairing: factory default fix</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/low-angle-bar-lights-for-scratch-detection-on-moving-boards</loc>
    <lastmod>2026-11-09T14:56:19-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-2a96a861a13284f52f2ffa02.jpg?v=1794200267</image:loc>
      <image:title>Low angle bar lights for scratch detection on moving boards</image:title>
      <image:caption>Low angle bar lights for scratch detection on moving boards</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/bitmap-memory-leak-when-you-resize-each-camera-frame-in-c</loc>
    <lastmod>2026-11-09T20:56:27-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-ef66fafe327bc86547362aba.jpg?v=1794200324</image:loc>
      <image:title>Bitmap memory leak when you resize each camera frame in C#</image:title>
      <image:caption>Bitmap memory leak when you resize each camera frame in C#</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/small-form-factor-usb-camera-modules-for-embedded-linux</loc>
    <lastmod>2026-11-09T13:42:20-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-1b3a194bbacfa7b8360c176f.jpg?v=1794200572</image:loc>
      <image:title>Small form factor USB camera modules for embedded Linux</image:title>
      <image:caption>Small form factor USB camera modules for embedded Linux</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/underwater-stereo-camera-calibration-refraction-vs-the-pinhole-model</loc>
    <lastmod>2026-11-09T14:46:15-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-063ab29ea5d65c08e284a006.jpg?v=1794200631</image:loc>
      <image:title>Underwater stereo camera calibration: refraction vs the pinhole model</image:title>
      <image:caption>Underwater stereo camera calibration: refraction vs the pinhole model</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/tfl-mount-vs-c-mount-and-f-mount-for-large-sensor-cameras</loc>
    <lastmod>2026-11-09T09:25:13-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-5ffe200efd0a43b90ef66516.jpg?v=1794200693</image:loc>
      <image:title>TFL mount vs C-mount and F-mount for large sensor cameras</image:title>
      <image:caption>TFL mount vs C-mount and F-mount for large sensor cameras</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/maximum-frame-rate-on-a-hardware-trigger-exposure-plus-readout-time</loc>
    <lastmod>2026-11-09T07:01:53-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-e2754c946d5fcdab5dda261b.jpg?v=1794200753</image:loc>
      <image:title>Maximum frame rate on a hardware trigger: exposure plus readout time</image:title>
      <image:caption>Maximum frame rate on a hardware trigger: exposure plus readout time</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/template-matching-score-thresholds-was-the-match-found</loc>
    <lastmod>2026-11-09T07:02:11-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-2a6887a842e71d940be94c58.jpg?v=1794200812</image:loc>
      <image:title>Template matching score thresholds: was the match found?</image:title>
      <image:caption>Template matching score thresholds: was the match found?</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/binary-image-registration-compute-the-2d-displacement-vector</loc>
    <lastmod>2026-11-09T13:14:12-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-95d8a6cdf212b446d3f2daf8.jpg?v=1794201055</image:loc>
      <image:title>Binary image registration: compute the 2D displacement vector</image:title>
      <image:caption>Binary image registration: compute the 2D displacement vector</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/3d-profiler-profile-rate-how-onboard-data-reduction-enables-speed</loc>
    <lastmod>2026-11-09T07:01:15-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-b096ede18d912a3b26dadc68.jpg?v=1794201114</image:loc>
      <image:title>3D profiler profile rate: how onboard data reduction enables speed</image:title>
      <image:caption>3D profiler profile rate: how onboard data reduction enables speed</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/why-uv-imaging-reveals-surface-defects-visible-light-cannot</loc>
    <lastmod>2026-11-09T08:13:39-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-b635c2bdb384804722b63da4.jpg?v=1794201176</image:loc>
      <image:title>Why UV imaging reveals surface defects visible light cannot</image:title>
      <image:caption>Why UV imaging reveals surface defects visible light cannot</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/nd-filter-exposure-control-pick-od-by-stops</loc>
    <lastmod>2026-11-09T10:02:19-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-618ab7fc7c183b9a3133368b.jpg?v=1794201238</image:loc>
      <image:title>ND filter exposure control: pick OD by stops</image:title>
      <image:caption>ND filter exposure control: pick OD by stops</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/mtf-curves-for-lens-selection-contrast-at-nyquist-frequency</loc>
    <lastmod>2026-11-09T07:01:54-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-a8388ec88e15b4489d060bc9.jpg?v=1794201297</image:loc>
      <image:title>MTF curves for lens selection: contrast at Nyquist frequency</image:title>
      <image:caption>MTF curves for lens selection: contrast at Nyquist frequency</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/prevent-product-recalls-with-machine-vision-inspection-points</loc>
    <lastmod>2026-11-09T13:32:03-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-3f5ef0599c00413bfeb11f6c.jpg?v=1794201530</image:loc>
      <image:title>Prevent product recalls with machine vision inspection points</image:title>
      <image:caption>Prevent product recalls with machine vision inspection points</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/crossed-polarizer-backlight-for-glass-and-plastic-stress-inspection</loc>
    <lastmod>2026-11-09T14:12:59-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-420087b1fa908fb4015a7f38.jpg?v=1794201594</image:loc>
      <image:title>Crossed polarizer backlight for glass and plastic stress inspection</image:title>
      <image:caption>Crossed polarizer backlight for glass and plastic stress inspection</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/3d-surface-pattern-matching-locate-parts-from-height-data</loc>
    <lastmod>2026-11-09T07:01:15-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-037990caec384d9f6f2ac111.jpg?v=1794201656</image:loc>
      <image:title>3D surface pattern matching: locate parts from height data</image:title>
      <image:caption>3D surface pattern matching: locate parts from height data</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/dot-peen-data-matrix-lighting-dark-field-contrast-on-shiny-metal</loc>
    <lastmod>2026-11-09T13:50:14-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-32fa69d4ac1ce57659bcde30.jpg?v=1794201720</image:loc>
      <image:title>Dot peen Data Matrix lighting: dark field contrast on shiny metal</image:title>
      <image:caption>Dot peen Data Matrix lighting: dark field contrast on shiny metal</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/ring-light-vs-bar-light-choosing-by-part-geometry-and-glare</loc>
    <lastmod>2026-11-09T07:02:04-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-5b1a1d82567fcfd5baab0bd0.jpg?v=1794201781</image:loc>
      <image:title>Ring light vs bar light: choosing by part geometry and glare</image:title>
      <image:caption>Ring light vs bar light: choosing by part geometry and glare</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/aperture-f-number-and-depth-of-field-in-machine-vision-cameras</loc>
    <lastmod>2026-11-09T09:25:12-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-c7842051199d54039223ee7d.jpg?v=1794202074</image:loc>
      <image:title>Aperture f-number and depth of field in machine vision cameras</image:title>
      <image:caption>Aperture f-number and depth of field in machine vision cameras</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/camera-sensor-size-formats-explained-what-1-inch-means</loc>
    <lastmod>2026-11-09T07:01:26-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-1a763599054616c4f3cfe3de.jpg?v=1794202141</image:loc>
      <image:title>Camera sensor size formats explained: what 1 inch means</image:title>
      <image:caption>Camera sensor size formats explained: what 1 inch means</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/spherical-aberration-in-machine-vision-lenses-spot-it-and-fix-it</loc>
    <lastmod>2026-11-09T07:02:09-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-e911e0834b07b598a16588b0.jpg?v=1794202208</image:loc>
      <image:title>Spherical aberration in machine vision lenses: spot it and fix it</image:title>
      <image:caption>Spherical aberration in machine vision lenses: spot it and fix it</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/extend-camera-gpio-trigger-cable-length-without-losing-sync</loc>
    <lastmod>2026-11-09T13:24:30-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-ed9785adccc3faca23686220.jpg?v=1794202277</image:loc>
      <image:title>Extend camera GPIO trigger cable length without losing sync</image:title>
      <image:caption>Extend camera GPIO trigger cable length without losing sync</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/wsl2-gige-camera-discovery-why-ping-works-and-the-list-is-empty</loc>
    <lastmod>2026-11-09T13:23:22-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-6326c2223abb7e14ca93bbc1.jpg?v=1794202342</image:loc>
      <image:title>WSL2 GigE camera discovery: why ping works and the list is empty</image:title>
      <image:caption>WSL2 GigE camera discovery: why ping works and the list is empty</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/open-end-trigger-cable-wiring-for-optocoupler-trigger-and-strobe</loc>
    <lastmod>2026-11-09T10:34:45-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-d7df7d3415baf61d8faafcd6.jpg?v=1794202613</image:loc>
      <image:title>Open end trigger cable wiring for optocoupler trigger and strobe</image:title>
      <image:caption>Open end trigger cable wiring for optocoupler trigger and strobe</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/cleaning-viewing-glass-in-a-machine-vision-inspection-cell</loc>
    <lastmod>2026-11-09T12:11:21-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-d4b8883ad352fd873eada8ff.jpg?v=1794202679</image:loc>
      <image:title>Cleaning viewing glass in a machine vision inspection cell</image:title>
      <image:caption>Cleaning viewing glass in a machine vision inspection cell</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/pixelformat-string-instead-of-integer-the-gentl-fix</loc>
    <lastmod>2026-11-09T07:02:00-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-e48efcdc28352e8707390112.jpg?v=1794202742</image:loc>
      <image:title>PixelFormat string instead of integer: the GenTL fix</image:title>
      <image:caption>PixelFormat string instead of integer: the GenTL fix</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/gentl-interface-version-mismatch-expected-1-1-got-0-0-v4l2-driver</loc>
    <lastmod>2026-11-09T13:41:06-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-c33234b5c4fe706175319598.jpg?v=1794202805</image:loc>
      <image:title>GenTL interface version mismatch: expected 1.1, got 0.0 (V4L2 driver)</image:title>
      <image:caption>GenTL interface version mismatch: expected 1.1, got 0.0 (V4L2 driver)</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/bayer-camera-black-image-in-a-gstreamer-stream-fix-the-debayer</loc>
    <lastmod>2026-11-09T17:18:15-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-4bf973723ad0f443e040ddeb.jpg?v=1794202870</image:loc>
      <image:title>Bayer camera black image in a GStreamer stream: fix the debayer</image:title>
      <image:caption>Bayer camera black image in a GStreamer stream: fix the debayer</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/white-surface-texture-inspection-lighting-kill-the-glints</loc>
    <lastmod>2026-11-09T07:02:15-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-5b4a74c5f1f45ee5f1ab5496.jpg?v=1794203153</image:loc>
      <image:title>White surface texture inspection lighting: kill the glints</image:title>
      <image:caption>White surface texture inspection lighting: kill the glints</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/ros-launch-overrides-your-camera-config-the-schema-mask-wins</loc>
    <lastmod>2026-11-09T20:34:29-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-19be3b80bc4aa6ef3d0ae60a.jpg?v=1794203220</image:loc>
      <image:title>ROS launch overrides your camera config: the schema mask wins</image:title>
      <image:caption>ROS launch overrides your camera config: the schema mask wins</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/fisheye-undistortion-field-of-view-loss-stitch-on-a-sphere</loc>
    <lastmod>2026-11-09T16:00:23-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-c3018c38d42f0ce4067a1167.jpg?v=1794203286</image:loc>
      <image:title>Fisheye undistortion field of view loss: stitch on a sphere</image:title>
      <image:caption>Fisheye undistortion field of view loss: stitch on a sphere</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/running-custom-object-detection-models-on-embedded-smart-cameras</loc>
    <lastmod>2026-11-09T10:22:20-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-0b46ad1395f36f2341bb09b9.jpg?v=1794203353</image:loc>
      <image:title>Running custom object detection models on embedded smart cameras</image:title>
      <image:caption>Running custom object detection models on embedded smart cameras</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/crop-a-depth-roi-in-2d-before-the-pointcloud-reaches-opencv</loc>
    <lastmod>2026-11-09T07:01:32-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-da4d843e962fffc9db1fc764.jpg?v=1794203421</image:loc>
      <image:title>Crop a depth ROI in 2D before the pointcloud reaches OpenCV</image:title>
      <image:caption>Crop a depth ROI in 2D before the pointcloud reaches OpenCV</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/publish-camera-info-without-a-driver-calibrate-and-serve-the-yaml</loc>
    <lastmod>2026-11-09T07:02:01-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-365c28ae3032bd653d1a8b2f.jpg?v=1794203689</image:loc>
      <image:title>Publish camera_info without a driver: calibrate and serve the YAML</image:title>
      <image:caption>Publish camera_info without a driver: calibrate and serve the YAML</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/build-opencv-with-cuda-for-depth-camera-streams</loc>
    <lastmod>2026-11-09T07:38:07-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-a802d46eda4883a56c1ddcfe.jpg?v=1794203757</image:loc>
      <image:title>Build OpenCV with CUDA for depth camera streams</image:title>
      <image:caption>Build OpenCV with CUDA for depth camera streams</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/machine-learning-parcel-sorting-sizing-the-vision-hardware-first</loc>
    <lastmod>2026-11-09T07:01:51-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-64457182d0bcf9c00a8787c3.jpg?v=1794203824</image:loc>
      <image:title>Machine learning parcel sorting: sizing the vision hardware first</image:title>
      <image:caption>Machine learning parcel sorting: sizing the vision hardware first</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/depth-camera-minimum-distance-vs-fov-for-close-range-hand-tracking</loc>
    <lastmod>2026-11-09T16:53:10-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-54487b82d9863a46923b0636.jpg?v=1794203890</image:loc>
      <image:title>Depth camera minimum distance vs FOV for close-range hand tracking</image:title>
      <image:caption>Depth camera minimum distance vs FOV for close-range hand tracking</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/clamp-depth-range-on-a-3d-camera-to-crop-the-point-cloud</loc>
    <lastmod>2026-11-09T19:36:12-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-980b89e9a729dd3f56d24841.jpg?v=1794203958</image:loc>
      <image:title>Clamp depth range on a 3D camera to crop the point cloud</image:title>
      <image:caption>Clamp depth range on a 3D camera to crop the point cloud</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/depth-camera-fails-on-a-usb-hub-why-raw-streams-refuse-to-start</loc>
    <lastmod>2026-11-10T00:06:15-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-7729581240c5f1b39a5d7df4.jpg?v=1794204232</image:loc>
      <image:title>Depth camera fails on a USB hub: why raw streams refuse to start</image:title>
      <image:caption>Depth camera fails on a USB hub: why raw streams refuse to start</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/imu-yaw-offset-after-robot-mounting-fix-the-camera-rotation</loc>
    <lastmod>2026-11-09T07:01:45-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-211b11ea6a1c61308c994af1.jpg?v=1794204300</image:loc>
      <image:title>IMU yaw offset after robot mounting: fix the camera rotation</image:title>
      <image:caption>IMU yaw offset after robot mounting: fix the camera rotation</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/pca-on-an-image-time-series-from-stack-to-parametric-maps</loc>
    <lastmod>2026-11-09T13:26:51-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-096060bcdb1badc090c61956.jpg?v=1794204368</image:loc>
      <image:title>PCA on an image time series: from stack to parametric maps</image:title>
      <image:caption>PCA on an image time series: from stack to parametric maps</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/incomplete-frames-stay-incomplete-discard-requeue-grab-a-new-one</loc>
    <lastmod>2026-11-09T07:01:46-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-d2e0cacbd27f98d9a3d46385.jpg?v=1794204437</image:loc>
      <image:title>Incomplete frames stay incomplete: discard, requeue, grab a new one</image:title>
      <image:caption>Incomplete frames stay incomplete: discard, requeue, grab a new one</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/segfault-when-the-camera-opens-fix-mismatched-shared-libraries</loc>
    <lastmod>2026-11-09T23:09:24-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-495587c1435da04346f9ddc0.jpg?v=1794204507</image:loc>
      <image:title>Segfault when the camera opens: fix mismatched shared libraries</image:title>
      <image:caption>Segfault when the camera opens: fix mismatched shared libraries</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/board-level-camera-hardware-revision-compatibility-before-you-reorder</loc>
    <lastmod>2026-11-09T16:38:12-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-d174fdc1a376b9b57fae78dc.jpg?v=1794204771</image:loc>
      <image:title>Board-level camera hardware revision compatibility before you reorder</image:title>
      <image:caption>Board-level camera hardware revision compatibility before you reorder</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/set-color-exposure-on-a-depth-camera-with-no-rgb-sensor</loc>
    <lastmod>2026-11-09T22:47:23-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-90188773dc07c6fbfda78603.jpg?v=1794204840</image:loc>
      <image:title>Set color exposure on a depth camera with no RGB sensor</image:title>
      <image:caption>Set color exposure on a depth camera with no RGB sensor</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/depth-and-color-field-of-view-mismatch-why-your-pixels-shift</loc>
    <lastmod>2026-11-09T23:23:19-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-e3633479d28e05bc226a5749.jpg?v=1794204920</image:loc>
      <image:title>Depth and color field of view mismatch: why your pixels shift</image:title>
      <image:caption>Depth and color field of view mismatch: why your pixels shift</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/i2c-slave-nack-on-address-read-fix-the-silent-peripheral</loc>
    <lastmod>2026-11-09T07:01:45-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-e303a10ea3e52d5a99724dca.jpg?v=1794204996</image:loc>
      <image:title>I2C slave NACK on address read: fix the silent peripheral</image:title>
      <image:caption>I2C slave NACK on address read: fix the silent peripheral</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/rectangular-image-input-in-deep-learning-training-letterbox-or-rect</loc>
    <lastmod>2026-11-09T23:22:09-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-483efab3092f57c2e15cd956.jpg?v=1794205067</image:loc>
      <image:title>Rectangular image input in deep learning training: letterbox or rect</image:title>
      <image:caption>Rectangular image input in deep learning training: letterbox or rect</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/disparity-map-to-depth-conversion-bands-are-not-fixed-mm</loc>
    <lastmod>2026-11-09T19:11:37-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-a95a933759e59ace77a519ff.jpg?v=1794205315</image:loc>
      <image:title>Disparity map to depth conversion: bands are not fixed mm</image:title>
      <image:caption>Disparity map to depth conversion: bands are not fixed mm</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/factory-calibrated-intrinsic-parameters-vs-ros-camera-defaults</loc>
    <lastmod>2026-11-09T20:34:28-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-db9f61ea460b7de3a6147148.jpg?v=1794205388</image:loc>
      <image:title>Factory calibrated intrinsic parameters vs ROS camera defaults</image:title>
      <image:caption>Factory calibrated intrinsic parameters vs ROS camera defaults</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/ocr-language-data-not-found-set-the-tessdata-path-correctly</loc>
    <lastmod>2026-11-09T07:01:57-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-a9b2afeeb6e7607613d58e6a.jpg?v=1794205461</image:loc>
      <image:title>OCR language data not found: set the tessdata path correctly</image:title>
      <image:caption>OCR language data not found: set the tessdata path correctly</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/ring-defect-detection-when-template-matching-gives-false-rejects</loc>
    <lastmod>2026-11-09T07:02:03-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-5ca34eb05e424a0ca7ddccfc.jpg?v=1794205533</image:loc>
      <image:title>Ring defect detection when template matching gives false rejects</image:title>
      <image:caption>Ring defect detection when template matching gives false rejects</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/plane-fitting-on-3d-point-clouds-least-squares-vs-ransac</loc>
    <lastmod>2026-11-09T14:04:10-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-3401166ce6481be337698935.jpg?v=1794205604</image:loc>
      <image:title>Plane fitting on 3D point clouds: least squares vs RANSAC</image:title>
      <image:caption>Plane fitting on 3D point clouds: least squares vs RANSAC</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/ir-led-eye-safety-at-close-range-iec-62471-limits</loc>
    <lastmod>2026-11-09T07:01:47-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-9a7da8d256ccf8a801a66d28.jpg?v=1794205852</image:loc>
      <image:title>IR LED eye safety at close range: IEC 62471 limits</image:title>
      <image:caption>IR LED eye safety at close range: IEC 62471 limits</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/truncated-weights-file-after-yolo-training-transfer-signs-and-checks</loc>
    <lastmod>2026-11-09T09:43:30-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-643a34a5ff9cd28cee1e268b.jpg?v=1794205926</image:loc>
      <image:title>Truncated weights file after YOLO training transfer: signs and checks</image:title>
      <image:caption>Truncated weights file after YOLO training transfer: signs and checks</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/camera-calibration-move-the-camera-or-the-chessboard</loc>
    <lastmod>2026-11-09T13:33:16-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-19dcbbf9758f31f354f07ce4.jpg?v=1794206001</image:loc>
      <image:title>Camera calibration: move the camera or the chessboard?</image:title>
      <image:caption>Camera calibration: move the camera or the chessboard?</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/3d-matching-small-parts-why-thin-point-clouds-fail-and-the-fix</loc>
    <lastmod>2026-11-09T16:47:25-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-ae9c7bf87ddd8fbbf921da7c.jpg?v=1794206081</image:loc>
      <image:title>3D matching small parts: why thin point clouds fail and the fix</image:title>
      <image:caption>3D matching small parts: why thin point clouds fail and the fix</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/pass-bounding-box-coordinates-to-a-depth-function</loc>
    <lastmod>2026-11-09T13:08:47-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-6820111a2cdbf52a025045a0.jpg?v=1794206159</image:loc>
      <image:title>Pass bounding box coordinates to a depth function</image:title>
      <image:caption>Pass bounding box coordinates to a depth function</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/multipart-images-on-gige-get-all-components-in-one-frame</loc>
    <lastmod>2026-11-09T20:56:31-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-613ac4528b2e9d435d958c5c.jpg?v=1794206450</image:loc>
      <image:title>MultiPart images on GigE: get all components in one frame</image:title>
      <image:caption>MultiPart images on GigE: get all components in one frame</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/gvsp-packets-no-receiver-the-port-unreachable-fix</loc>
    <lastmod>2026-11-09T07:01:44-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-70bdb585d6d585d1fc603dac.jpg?v=1794206533</image:loc>
      <image:title>GVSP packets, no receiver: the port unreachable fix</image:title>
      <image:caption>GVSP packets, no receiver: the port unreachable fix</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/nvarguscamerasrc-captures-the-desktop-screen-fix-the-device-index</loc>
    <lastmod>2026-11-09T11:11:33-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-e764372ba04f50c9c71ec048.jpg?v=1794206612</image:loc>
      <image:title>nvarguscamerasrc captures the desktop screen: fix the device index</image:title>
      <image:caption>nvarguscamerasrc captures the desktop screen: fix the device index</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/barcode-capture-on-a-moving-vehicle-speed-blur-and-read-rate</loc>
    <lastmod>2026-11-09T14:22:40-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-846673c06f63aae4fed6f973.jpg?v=1794206686</image:loc>
      <image:title>Barcode capture on a moving vehicle: speed, blur and read rate</image:title>
      <image:caption>Barcode capture on a moving vehicle: speed, blur and read rate</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/send-barcode-text-to-an-android-tablet-over-usb-as-hid-keyboard</loc>
    <lastmod>2026-11-09T07:02:07-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-d0000211adbe1e6cd7bc3913.jpg?v=1794206763</image:loc>
      <image:title>Send barcode text to an Android tablet over USB as HID keyboard</image:title>
      <image:caption>Send barcode text to an Android tablet over USB as HID keyboard</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/line-scan-illumination-uniformity-fix-the-dark-band-across-wide-webs</loc>
    <lastmod>2026-11-09T08:13:30-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-500711c889d87983ad445a39.jpg?v=1794207061</image:loc>
      <image:title>Line scan illumination uniformity: fix the dark band across wide webs</image:title>
      <image:caption>Line scan illumination uniformity: fix the dark band across wide webs</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/rectified-texture-image-missing-from-a-3d-camera-grab</loc>
    <lastmod>2026-11-09T07:02:02-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-2209727de2c860fa44e8b010.jpg?v=1794207143</image:loc>
      <image:title>Rectified texture image missing from a 3D camera grab</image:title>
      <image:caption>Rectified texture image missing from a 3D camera grab</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/capture-raw-bayer-rg10-frames-from-six-v4l2-cameras-with-v4l2-ctl</loc>
    <lastmod>2026-11-09T11:11:32-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-913fc1edc2d1a943ff8a41ac.jpg?v=1794207223</image:loc>
      <image:title>Capture raw Bayer RG10 frames from six V4L2 cameras with v4l2-ctl</image:title>
      <image:caption>Capture raw Bayer RG10 frames from six V4L2 cameras with v4l2-ctl</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/ir-pass-vs-ir-cut-lens-nir-sensitivity-for-cs-and-m12-cameras</loc>
    <lastmod>2026-11-09T12:03:40-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-e20a533b6627e4671bc71f4b.jpg?v=1794207299</image:loc>
      <image:title>IR pass vs IR cut lens: NIR sensitivity for CS and M12 cameras</image:title>
      <image:caption>IR pass vs IR cut lens: NIR sensitivity for CS and M12 cameras</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/end-of-life-camera-sdk-support-plan-before-you-integrate</loc>
    <lastmod>2026-11-09T07:01:39-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-05ea6abde54662b2f06b9dad.jpg?v=1794207377</image:loc>
      <image:title>End of life camera SDK support: plan before you integrate</image:title>
      <image:caption>End of life camera SDK support: plan before you integrate</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/sync-a-depth-camera-and-a-third-party-camera-on-one-external-pulse</loc>
    <lastmod>2026-11-09T07:02:10-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-585d3a44be6864165509400b.jpg?v=1794207655</image:loc>
      <image:title>Sync a depth camera and a third-party camera on one external pulse</image:title>
      <image:caption>Sync a depth camera and a third-party camera on one external pulse</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/replace-an-embedded-scan-engine-with-an-external-barcode-scanner</loc>
    <lastmod>2026-11-09T12:05:59-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-f03687e80c0e6ce1ca8c2e65.jpg?v=1794207734</image:loc>
      <image:title>Replace an embedded scan engine with an external barcode scanner</image:title>
      <image:caption>Replace an embedded scan engine with an external barcode scanner</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/chain-pairwise-camera-extrinsics-into-one-valid-tf-tree</loc>
    <lastmod>2026-11-09T13:45:51-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-f044a0d3035cc47fb00a48b2.jpg?v=1794207815</image:loc>
      <image:title>Chain pairwise camera extrinsics into one valid TF tree</image:title>
      <image:caption>Chain pairwise camera extrinsics into one valid TF tree</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/pharmacode-symbology-support-check-for-fixed-barcode-readers</loc>
    <lastmod>2026-11-09T07:02:00-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-97c9a641b45a68fe8cd468df.jpg?v=1794207901</image:loc>
      <image:title>Pharmacode symbology support check for fixed barcode readers</image:title>
      <image:caption>Pharmacode symbology support check for fixed barcode readers</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/camera-dismissal-completion-block-timing-hiding-the-overlay</loc>
    <lastmod>2026-11-09T14:31:23-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-850de72049309853806aa95b.jpg?v=1794208009</image:loc>
      <image:title>Camera dismissal completion block timing: hiding the overlay</image:title>
      <image:caption>Camera dismissal completion block timing: hiding the overlay</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/why-the-fundamental-matrix-fails-uncalibrated-stereo-rectification</loc>
    <lastmod>2026-11-09T07:02:16-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-f8247e89c6f64cdb2a1465fd.jpg?v=1794208330</image:loc>
      <image:title>Why the fundamental matrix fails uncalibrated stereo rectification</image:title>
      <image:caption>Why the fundamental matrix fails uncalibrated stereo rectification</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/out-of-memory-in-a-video-loop-fix-the-per-frame-image-leak</loc>
    <lastmod>2026-11-09T08:33:48-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-efe956ac2f497982ba563545.jpg?v=1794208411</image:loc>
      <image:title>Out of memory in a video loop: fix the per-frame image leak</image:title>
      <image:caption>Out of memory in a video loop: fix the per-frame image leak</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/lucky-imaging-camera-settings-exposure-sampling-and-frame-rate</loc>
    <lastmod>2026-11-09T12:49:45-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-acdcc32e2df01fa30580525c.jpg?v=1794208494</image:loc>
      <image:title>Lucky imaging camera settings: exposure, sampling and frame rate</image:title>
      <image:caption>Lucky imaging camera settings: exposure, sampling and frame rate</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/rolling-shutter-global-reset-with-flash-for-moving-objects</loc>
    <lastmod>2026-11-09T08:13:35-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-f06f8c8f05cb2c15a061042d.jpg?v=1794208579</image:loc>
      <image:title>Rolling shutter global reset with flash for moving objects</image:title>
      <image:caption>Rolling shutter global reset with flash for moving objects</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/constant-current-vs-voltage-led-lighting-why-voltage-drive-drifts</loc>
    <lastmod>2026-11-09T13:06:29-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-0004d5237588863962401b0f.jpg?v=1794208662</image:loc>
      <image:title>Constant current vs voltage LED lighting: why voltage drive drifts</image:title>
      <image:caption>Constant current vs voltage LED lighting: why voltage drive drifts</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/collimated-backlighting-to-image-transparent-parts-as-solid-black</loc>
    <lastmod>2026-11-09T07:01:29-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-c1aa2a5f40868e4f80372933.jpg?v=1794208966</image:loc>
      <image:title>Collimated backlighting to image transparent parts as solid black</image:title>
      <image:caption>Collimated backlighting to image transparent parts as solid black</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/machine-vision-cameras-on-an-arm-som-the-linux-checks</loc>
    <lastmod>2026-11-09T14:49:51-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-8d28785b8a43e51c229b94d1.jpg?v=1794209046</image:loc>
      <image:title>Machine vision cameras on an ARM SoM: the Linux checks</image:title>
      <image:caption>Machine vision cameras on an ARM SoM: the Linux checks</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/machine-vision-vs-computer-vision-vs-image-processing</loc>
    <lastmod>2026-11-09T23:22:08-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-7294383e499df73ca6b69727.jpg?v=1794209130</image:loc>
      <image:title>Machine vision vs computer vision vs image processing</image:title>
      <image:caption>Machine vision vs computer vision vs image processing</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/line-scan-camera-resolution-for-micron-level-semiconductor-inspection</loc>
    <lastmod>2026-11-09T16:01:42-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-3322cf83585966d0d3a59a7a.jpg?v=1794209212</image:loc>
      <image:title>Line scan camera resolution for micron-level semiconductor inspection</image:title>
      <image:caption>Line scan camera resolution for micron-level semiconductor inspection</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/swir-wavelength-selection-by-material-silicon-moisture-plastics</loc>
    <lastmod>2026-11-09T07:02:10-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-b584c23e8d25f6b158fcf815.jpg?v=1794209293</image:loc>
      <image:title>SWIR wavelength selection by material: silicon, moisture, plastics</image:title>
      <image:caption>SWIR wavelength selection by material: silicon, moisture, plastics</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/conveyor-case-classification-with-multiple-shape-models</loc>
    <lastmod>2026-11-09T07:01:31-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-ba65ebcacf83964cdde728f1.jpg?v=1794209572</image:loc>
      <image:title>Conveyor case classification with multiple shape models</image:title>
      <image:caption>Conveyor case classification with multiple shape models</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/align-multiple-3d-scans-with-photogrammetry-targets</loc>
    <lastmod>2026-11-10T00:36:25-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-adc3e473761ee1f83a86e555.jpg?v=1794209656</image:loc>
      <image:title>Align multiple 3D scans with photogrammetry targets</image:title>
      <image:caption>Align multiple 3D scans with photogrammetry targets</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/machine-vision-optics-basics-fov-wd-magnification-and-f-number</loc>
    <lastmod>2026-11-09T07:01:52-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-c85bd74b75cecc24512b6ed6.jpg?v=1794209739</image:loc>
      <image:title>Machine vision optics basics: FoV, WD, magnification and f-number</image:title>
      <image:caption>Machine vision optics basics: FoV, WD, magnification and f-number</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/rviz-crash-changing-image-topic-fix-the-mutex-teardown-order</loc>
    <lastmod>2026-11-09T07:02:06-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-11853c97e222e8ab9aa1eb82.jpg?v=1794209823</image:loc>
      <image:title>Rviz crash changing image topic: fix the mutex teardown order</image:title>
      <image:caption>Rviz crash changing image topic: fix the mutex teardown order</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/embedded-isp-tuning-why-sensor-plus-software-sets-image-quality</loc>
    <lastmod>2026-11-09T17:25:15-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-6b47adec4b567ceb1edc04b7.jpg?v=1794209905</image:loc>
      <image:title>Embedded ISP tuning: why sensor plus software sets image quality</image:title>
      <image:caption>Embedded ISP tuning: why sensor plus software sets image quality</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/lens-selection-based-on-resolution-feature-size-to-mtf</loc>
    <lastmod>2026-11-09T10:02:18-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-8893b1304382035974d6a593.jpg?v=1794210173</image:loc>
      <image:title>Lens selection based on resolution: feature size to MTF</image:title>
      <image:caption>Lens selection based on resolution: feature size to MTF</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/detect-screw-orientation-angle-and-level-the-image</loc>
    <lastmod>2026-11-09T07:01:36-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-4a9fee405659f033bfaa3b8c.jpg?v=1794210266</image:loc>
      <image:title>Detect screw orientation angle and level the image</image:title>
      <image:caption>Detect screw orientation angle and level the image</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/camera-shows-in-lsusb-but-no-video-device-check-the-usb-class</loc>
    <lastmod>2026-11-09T12:21:23-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-c7be177200a19515c4907b13.jpg?v=1794210349</image:loc>
      <image:title>Camera shows in lsusb but no video device: check the USB class</image:title>
      <image:caption>Camera shows in lsusb but no video device: check the USB class</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/camera-detected-as-usb-2-why-streams-drop-and-how-to-fix-it</loc>
    <lastmod>2026-11-09T07:11:30-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-de831d8b0b3aabbd29d42e88.jpg?v=1794210435</image:loc>
      <image:title>Camera detected as USB 2: why streams drop and how to fix it</image:title>
      <image:caption>Camera detected as USB 2: why streams drop and how to fix it</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/connect-a-camera-on-a-different-subnet-without-adding-a-second-ip</loc>
    <lastmod>2026-11-09T23:52:08-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-49df3f1d3de52554e62ec13c.jpg?v=1794210521</image:loc>
      <image:title>Connect a camera on a different subnet without adding a second IP</image:title>
      <image:caption>Connect a camera on a different subnet without adding a second IP</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/rolling-shutter-blur-limits-depth-accuracy-on-fast-3d-scans</loc>
    <lastmod>2026-11-10T00:35:13-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-7cfc9b153612008e07608cb8.jpg?v=1794210831</image:loc>
      <image:title>Rolling shutter blur limits depth accuracy on fast 3D scans</image:title>
      <image:caption>Rolling shutter blur limits depth accuracy on fast 3D scans</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/chromatic-aberration-in-machine-vision-lenses-fix-colour-fringing</loc>
    <lastmod>2026-11-09T07:01:28-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-39388a1cd6d7fa6e9ce289b6.jpg?v=1794210916</image:loc>
      <image:title>Chromatic aberration in machine vision lenses: fix colour fringing</image:title>
      <image:caption>Chromatic aberration in machine vision lenses: fix colour fringing</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/thermal-camera-not-detected-by-your-vision-sdk</loc>
    <lastmod>2026-11-09T12:39:33-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-a2d982fc1f6893dda67e2411.jpg?v=1794211003</image:loc>
      <image:title>Thermal camera not detected by your vision SDK</image:title>
      <image:caption>Thermal camera not detected by your vision SDK</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/camera-selection-for-egg-defect-inspection-on-rollers</loc>
    <lastmod>2026-11-09T07:01:26-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-8d5773362d7d7511bfe0a6f4.jpg?v=1794211098</image:loc>
      <image:title>Camera selection for egg defect inspection on rollers</image:title>
      <image:caption>Camera selection for egg defect inspection on rollers</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/arduino-square-wave-trigger-for-5-cameras-multi-camera-sync</loc>
    <lastmod>2026-11-09T20:56:26-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-9887490bc6e1186e721299fc.jpg?v=1794211185</image:loc>
      <image:title>Arduino square wave trigger for 5 cameras: multi camera sync</image:title>
      <image:caption>Arduino square wave trigger for 5 cameras: multi camera sync</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/validate-a-trained-pattern-matcher-when-features-stay-hidden</loc>
    <lastmod>2026-11-09T12:10:08-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-831e0087f96c3a16ea83229d.jpg?v=1794211491</image:loc>
      <image:title>Validate a trained pattern matcher when features stay hidden</image:title>
      <image:caption>Validate a trained pattern matcher when features stay hidden</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/dual-bandpass-filter-day-night-imaging-keep-color-and-see-in-ir</loc>
    <lastmod>2026-11-09T14:58:46-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-c986e10fa73e94185c0afced.jpg?v=1794211580</image:loc>
      <image:title>Dual bandpass filter day night imaging: keep color and see in IR</image:title>
      <image:caption>Dual bandpass filter day night imaging: keep color and see in IR</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/gvsp-packets-arrive-but-the-player-shows-no-image-debug-it</loc>
    <lastmod>2026-11-09T07:01:43-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-05b0f4677d5ad65bc12e53cb.jpg?v=1794211668</image:loc>
      <image:title>GVSP packets arrive but the player shows no image: debug it</image:title>
      <image:caption>GVSP packets arrive but the player shows no image: debug it</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/move-a-csi-camera-to-a-new-compute-module-compatibility-checks</loc>
    <lastmod>2026-11-09T07:01:54-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-580fa07448d60a165178174b.jpg?v=1794211761</image:loc>
      <image:title>Move a CSI camera to a new compute module: compatibility checks</image:title>
      <image:caption>Move a CSI camera to a new compute module: compatibility checks</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/no-video-device-for-a-3d-camera-on-linux-fix-the-driver-build</loc>
    <lastmod>2026-11-09T08:22:11-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-c24902881377a4c0b5fcb00b.jpg?v=1794211851</image:loc>
      <image:title>No video device for a 3D camera on Linux: fix the driver build</image:title>
      <image:caption>No video device for a 3D camera on Linux: fix the driver build</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/genicam-xml-schema-validate-assertion-failed-the-camera-is-fine</loc>
    <lastmod>2026-11-09T14:49:51-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-42f725c567600e75694b6ceb.jpg?v=1794212149</image:loc>
      <image:title>GenICam XML schema validate assertion failed? The camera is fine</image:title>
      <image:caption>GenICam XML schema validate assertion failed? The camera is fine</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/short-range-camera-hand-eye-calibration-target-and-standoff</loc>
    <lastmod>2026-11-09T14:46:14-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-ed73db7b8907068ddcf65cdc.jpg?v=1794212238</image:loc>
      <image:title>Short-range camera hand-eye calibration target and standoff</image:title>
      <image:caption>Short-range camera hand-eye calibration target and standoff</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/opencv-compiled-without-cuda-support-check-the-build-first</loc>
    <lastmod>2026-11-09T10:23:24-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-5eb4c0ebae7c8f68a82b4950.jpg?v=1794212330</image:loc>
      <image:title>OpenCV compiled without CUDA support: check the build first</image:title>
      <image:caption>OpenCV compiled without CUDA support: check the build first</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/decode-embedded-image-metadata-chunks-to-real-camera-values</loc>
    <lastmod>2026-11-09T07:01:32-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-31c0e8880a8b11f681374920.jpg?v=1794212422</image:loc>
      <image:title>Decode embedded image metadata chunks to real camera values</image:title>
      <image:caption>Decode embedded image metadata chunks to real camera values</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/read-actual-exposure-per-frame-when-metadata-says-unsupported</loc>
    <lastmod>2026-11-09T19:21:11-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-1482284f967b6af8b3fff2cf.jpg?v=1794212517</image:loc>
      <image:title>Read actual exposure per frame when metadata says unsupported</image:title>
      <image:caption>Read actual exposure per frame when metadata says unsupported</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/identical-lines-between-consecutive-frames-stale-buffer-or-readout</loc>
    <lastmod>2026-11-09T10:32:27-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-e5cc4dc01ddcdeb1a42a7195.jpg?v=1794212807</image:loc>
      <image:title>Identical lines between consecutive frames: stale buffer or readout</image:title>
      <image:caption>Identical lines between consecutive frames: stale buffer or readout</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/depth-camera-auto-exposure-options-error-set-the-master-option-first</loc>
    <lastmod>2026-11-09T07:01:33-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-99cc0eb36e15b5a0a86d38a3.jpg?v=1794212898</image:loc>
      <image:title>Depth camera auto exposure options error: set the master option first</image:title>
      <image:caption>Depth camera auto exposure options error: set the master option first</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/read-multiple-qr-codes-in-one-image-and-pick-the-right-one</loc>
    <lastmod>2026-11-09T12:33:05-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-5556bbeab28f9f99ea8345b5.jpg?v=1794212994</image:loc>
      <image:title>Read multiple QR codes in one image and pick the right one</image:title>
      <image:caption>Read multiple QR codes in one image and pick the right one</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/chunk-data-exposure-time-error-enable-the-image-chunk-first</loc>
    <lastmod>2026-11-09T23:11:41-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-0d4a46a2690b21f7a21bd2cd.jpg?v=1794213092</image:loc>
      <image:title>Chunk data exposure time error: enable the Image chunk first</image:title>
      <image:caption>Chunk data exposure time error: enable the Image chunk first</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/barcode-decoding-with-8-bit-image-input-from-10-and-12-bit-cameras</loc>
    <lastmod>2026-11-09T12:33:04-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-7f67b2acb03e239a6750a66c.jpg?v=1794213184</image:loc>
      <image:title>Barcode decoding with 8-bit image input from 10 and 12-bit cameras</image:title>
      <image:caption>Barcode decoding with 8-bit image input from 10 and 12-bit cameras</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/gige-camera-on-multiple-network-interfaces-pick-the-right-nic</loc>
    <lastmod>2026-11-09T09:00:41-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-5f10e034c1aed06781e1024f.jpg?v=1794213472</image:loc>
      <image:title>GigE camera on multiple network interfaces: pick the right NIC</image:title>
      <image:caption>GigE camera on multiple network interfaces: pick the right NIC</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/depth-camera-minimum-range-why-close-objects-look-like-noise</loc>
    <lastmod>2026-11-09T09:26:23-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-ff1354c0cf3553b238b8d4a0.jpg?v=1794213567</image:loc>
      <image:title>Depth camera minimum range: why close objects look like noise</image:title>
      <image:caption>Depth camera minimum range: why close objects look like noise</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/ros-workspace-overlay-precedence-why-builds-link-the-wrong-package</loc>
    <lastmod>2026-11-09T08:21:03-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-21f6c91de2689dc70e64f8c9.jpg?v=1794213664</image:loc>
      <image:title>ROS workspace overlay precedence: why builds link the wrong package</image:title>
      <image:caption>ROS workspace overlay precedence: why builds link the wrong package</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/depth-camera-usb-disconnect-errors-diagnosing-71-in-dmesg</loc>
    <lastmod>2026-11-09T19:52:14-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-fbf679bead4d619991c3ed32.jpg?v=1794213757</image:loc>
      <image:title>Depth camera USB disconnect errors: diagnosing -71 in dmesg</image:title>
      <image:caption>Depth camera USB disconnect errors: diagnosing -71 in dmesg</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/waitforframe-api-signature-mismatch-match-your-call-to-the-sdk</loc>
    <lastmod>2026-11-09T20:56:33-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-12f01a2d50b23db019c1aeea.jpg?v=1794213854</image:loc>
      <image:title>WaitForFrame API signature mismatch: match your call to the SDK</image:title>
      <image:caption>WaitForFrame API signature mismatch: match your call to the SDK</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/measure-rectangle-edge-detection-setup-for-connector-pin-inspection</loc>
    <lastmod>2026-11-09T07:01:53-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-67feee162af1c8c2e7118086.jpg?v=1794214131</image:loc>
      <image:title>Measure rectangle edge detection setup for connector pin inspection</image:title>
      <image:caption>Measure rectangle edge detection setup for connector pin inspection</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/embedded-vision-box-why-sustained-recording-fps-drops-and-the-fix</loc>
    <lastmod>2026-11-09T07:01:38-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-83495aca41d1aa84243567b3.jpg?v=1794214227</image:loc>
      <image:title>Embedded vision box: why sustained recording FPS drops and the fix</image:title>
      <image:caption>Embedded vision box: why sustained recording FPS drops and the fix</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/blue-tint-on-a-board-camera-fix-a-missing-isp-calibration</loc>
    <lastmod>2026-11-09T12:51:02-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-d032d69824c78a4664bf8527.jpg?v=1794214326</image:loc>
      <image:title>Blue tint on a board camera: fix a missing ISP calibration</image:title>
      <image:caption>Blue tint on a board camera: fix a missing ISP calibration</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/no-ocr-output-from-a-webhook-sink-debug-the-payload-first</loc>
    <lastmod>2026-11-09T11:52:11-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-153251fa491df88bdee0994d.jpg?v=1794214425</image:loc>
      <image:title>No OCR output from a webhook sink: debug the payload first</image:title>
      <image:caption>No OCR output from a webhook sink: debug the payload first</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/encode-two-h264-streams-on-one-embedded-vpu-budget-the-bitrate</loc>
    <lastmod>2026-11-09T07:01:38-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-486daba6954db5facfd4dfa1.jpg?v=1794214526</image:loc>
      <image:title>Encode two H264 streams on one embedded VPU: budget the bitrate</image:title>
      <image:caption>Encode two H264 streams on one embedded VPU: budget the bitrate</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/warped-sparse-point-cloud-fix-calibration-coverage-at-the-edges</loc>
    <lastmod>2026-11-09T07:02:14-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-c1f15e8e8e8dd7807fe44ed4.jpg?v=1794214791</image:loc>
      <image:title>Warped sparse point cloud: fix calibration coverage at the edges</image:title>
      <image:caption>Warped sparse point cloud: fix calibration coverage at the edges</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/board-level-camera-housing-design-from-maker-step-files</loc>
    <lastmod>2026-11-09T07:01:21-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-5dabde73a2e6ae313d524c33.jpg?v=1794214896</image:loc>
      <image:title>Board level camera housing design from maker STEP files</image:title>
      <image:caption>Board level camera housing design from maker STEP files</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/camera-detected-but-not-in-acquisition-tool-fix-the-adapter-layer</loc>
    <lastmod>2026-11-09T14:11:46-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-6dfc392b71f77193f361c2f8.jpg?v=1794215002</image:loc>
      <image:title>Camera detected but not in acquisition tool: fix the adapter layer</image:title>
      <image:caption>Camera detected but not in acquisition tool: fix the adapter layer</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/camera-demo-has-no-exposure-or-gain-controls-what-to-do</loc>
    <lastmod>2026-11-09T07:01:24-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-355637aaaf99d42fb363928a.jpg?v=1794215123</image:loc>
      <image:title>Camera demo has no exposure or gain controls: what to do</image:title>
      <image:caption>Camera demo has no exposure or gain controls: what to do</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/convert-image-coordinates-to-robot-coordinates-for-servo-moves</loc>
    <lastmod>2026-11-09T11:00:45-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-5c32aa19a7da75917d05f06a.jpg?v=1794215222</image:loc>
      <image:title>Convert image coordinates to robot coordinates for servo moves</image:title>
      <image:caption>Convert image coordinates to robot coordinates for servo moves</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/m12-lens-ir-cut-filter-is-it-in-the-glass-or-on-the-board</loc>
    <lastmod>2026-11-09T08:13:32-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-1ba7f8975151a99cb56849b5.jpg?v=1794215515</image:loc>
      <image:title>M12 lens IR cut filter: is it in the glass or on the board</image:title>
      <image:caption>M12 lens IR cut filter: is it in the glass or on the board</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/remove-dust-noise-from-screw-thread-images-filter-before-threshold</loc>
    <lastmod>2026-11-09T07:02:03-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-521548d494a9a4c5bc714d36.jpg?v=1794215621</image:loc>
      <image:title>Remove dust noise from screw thread images: filter before threshold</image:title>
      <image:caption>Remove dust noise from screw thread images: filter before threshold</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/gradle-generatejsonmodel-build-failure-pin-one-toolchain</loc>
    <lastmod>2026-11-09T07:01:43-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-cbc201dd1592873c73af9771.jpg?v=1794215722</image:loc>
      <image:title>Gradle generateJsonModel build failure: pin one toolchain</image:title>
      <image:caption>Gradle generateJsonModel build failure: pin one toolchain</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/feed-socket-streamed-frames-to-yolo-without-temp-files</loc>
    <lastmod>2026-11-09T18:13:08-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-a8febc3e13ca2f8e56001a0f.jpg?v=1794215820</image:loc>
      <image:title>Feed socket-streamed frames to YOLO without temp files</image:title>
      <image:caption>Feed socket-streamed frames to YOLO without temp files</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/uvc-camera-not-detected-identify-the-device-node-first</loc>
    <lastmod>2026-11-09T07:02:13-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-37deea73b70831a84a44ecb6.jpg?v=1794215925</image:loc>
      <image:title>UVC camera not detected: identify the device node first</image:title>
      <image:caption>UVC camera not detected: identify the device node first</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/imu-linear-acceleration-drift-fix-the-bias-not-the-extrinsics</loc>
    <lastmod>2026-11-09T19:26:09-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-5628321b658ec74e6ad312dd.jpg?v=1794216228</image:loc>
      <image:title>IMU linear acceleration drift: fix the bias, not the extrinsics</image:title>
      <image:caption>IMU linear acceleration drift: fix the bias, not the extrinsics</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/camera-calibration-depth-range-and-accuracy-when-to-recalibrate</loc>
    <lastmod>2026-11-09T07:01:23-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-0d5a4a3b379f793bfc69143f.jpg?v=1794216336</image:loc>
      <image:title>Camera calibration depth range and accuracy: when to recalibrate</image:title>
      <image:caption>Camera calibration depth range and accuracy: when to recalibrate</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/save-and-load-camera-settings-to-a-user-set-file</loc>
    <lastmod>2026-11-09T19:21:11-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-b3f7d399b7fc617547e027c0.jpg?v=1794216434</image:loc>
      <image:title>Save and load camera settings to a user set file</image:title>
      <image:caption>Save and load camera settings to a user set file</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/blob-analysis-finds-too-many-blobs-jpeg-artifacts-and-thresholding</loc>
    <lastmod>2026-11-09T07:03:24-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-4663b4a9a9ec86032337cc88.jpg?v=1794216538</image:loc>
      <image:title>Blob analysis finds too many blobs: JPEG artifacts and thresholding</image:title>
      <image:caption>Blob analysis finds too many blobs: JPEG artifacts and thresholding</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/depth-camera-color-stream-on-uvc-or-v4l2-why-some-show-up</loc>
    <lastmod>2026-11-09T07:01:33-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-4244a2bfaa9e974dbe139e45.jpg?v=1794216646</image:loc>
      <image:title>Depth camera color stream on UVC or V4L2: why some show up</image:title>
      <image:caption>Depth camera color stream on UVC or V4L2: why some show up</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/calibration-of-three-mono-cameras-on-one-board-what-blocks-it</loc>
    <lastmod>2026-11-09T09:08:19-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-81781a87a60f134af9b12157.jpg?v=1794216951</image:loc>
      <image:title>Calibration of three mono cameras on one board: what blocks it</image:title>
      <image:caption>Calibration of three mono cameras on one board: what blocks it</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/lighting-to-verify-a-part-inside-a-metal-can-coaxial-diffuse-wins</loc>
    <lastmod>2026-11-09T08:13:27-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-a415d2b34c04f3d62f465ce8.jpg?v=1794217054</image:loc>
      <image:title>Lighting to verify a part inside a metal can: coaxial diffuse wins</image:title>
      <image:caption>Lighting to verify a part inside a metal can: coaxial diffuse wins</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/histogram-exposure-metrics-for-auto-exposure-and-contrast-control</loc>
    <lastmod>2026-11-09T09:54:28-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-804b09dfcc2771082650cb1e.jpg?v=1794217159</image:loc>
      <image:title>Histogram exposure metrics for auto exposure and contrast control</image:title>
      <image:caption>Histogram exposure metrics for auto exposure and contrast control</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/cmake-opencv-submodule-find-package-error-build-install-then-link</loc>
    <lastmod>2026-11-09T15:46:16-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-e5869e823bff05da55a5bb1c.jpg?v=1794217263</image:loc>
      <image:title>CMake OpenCV submodule find_package error: build, install, then link</image:title>
      <image:caption>CMake OpenCV submodule find_package error: build, install, then link</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/tca9548-i2c-multiplexer-for-multiple-mipi-cameras-in-the-device-tree</loc>
    <lastmod>2026-11-09T12:49:46-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-2a452198a7c10f08052b95b6.jpg?v=1794217363</image:loc>
      <image:title>TCA9548 I2C multiplexer for multiple MIPI cameras in the device tree</image:title>
      <image:caption>TCA9548 I2C multiplexer for multiple MIPI cameras in the device tree</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/stereo-depth-returns-0-at-the-bottom-of-the-image-why</loc>
    <lastmod>2026-11-09T07:02:09-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-0c1549d710343a44c7ab6e59.jpg?v=1794217667</image:loc>
      <image:title>Stereo depth returns 0 at the bottom of the image: why</image:title>
      <image:caption>Stereo depth returns 0 at the bottom of the image: why</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/set-camera-info-service-missing-in-a-stereo-camera-driver</loc>
    <lastmod>2026-11-09T07:02:07-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-c6b4117a04ae96fc8a7b0c64.jpg?v=1794217773</image:loc>
      <image:title>set_camera_info service missing in a stereo camera driver</image:title>
      <image:caption>set_camera_info service missing in a stereo camera driver</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/how-dic-imaging-reveals-nanometer-scratches-on-specular-surfaces</loc>
    <lastmod>2026-11-09T15:32:05-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-9f332906a0ce1de1a03226ae.jpg?v=1794217874</image:loc>
      <image:title>How DIC imaging reveals nanometer scratches on specular surfaces</image:title>
      <image:caption>How DIC imaging reveals nanometer scratches on specular surfaces</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/when-black-objects-look-white-in-your-images-missing-ir-cut-filter</loc>
    <lastmod>2026-11-09T07:02:14-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-6f7ca74d1e697568ad41be10.jpg?v=1794217977</image:loc>
      <image:title>When black objects look white in your images: missing IR-cut filter</image:title>
      <image:caption>When black objects look white in your images: missing IR-cut filter</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/gmsl-camera-open-failure-with-multiple-cameras-pick-by-serial-number</loc>
    <lastmod>2026-11-09T07:01:43-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-264243375595b9b9e8eb4b77.jpg?v=1794218079</image:loc>
      <image:title>GMSL camera open failure with multiple cameras: pick by serial number</image:title>
      <image:caption>GMSL camera open failure with multiple cameras: pick by serial number</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/ccd-vs-cmos-sensor-differences-what-a-machine-vision-buyer-checks</loc>
    <lastmod>2026-11-09T07:01:27-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-0e28a8fe629aad0f4430f765.jpg?v=1794218389</image:loc>
      <image:title>CCD vs CMOS sensor differences: what a machine vision buyer checks</image:title>
      <image:caption>CCD vs CMOS sensor differences: what a machine vision buyer checks</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/concentricity-measurement-of-features-at-different-heights</loc>
    <lastmod>2026-11-09T07:01:30-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-e25475c84793561aa629c6b6.jpg?v=1794218501</image:loc>
      <image:title>Concentricity measurement of features at different heights</image:title>
      <image:caption>Concentricity measurement of features at different heights</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/opencv-c-grayscale-threshold-at-170-the-integer-division-trap</loc>
    <lastmod>2026-11-09T07:01:58-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-398e36d3a0095e08f58f44e4.jpg?v=1794218609</image:loc>
      <image:title>OpenCV C++ grayscale threshold at 170: the integer-division trap</image:title>
      <image:caption>OpenCV C++ grayscale threshold at 170: the integer-division trap</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/non-square-image-size-in-yolo-training-rect-vs-square</loc>
    <lastmod>2026-11-09T07:01:56-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-31154a4b15b27e95a533c5da.jpg?v=1794218715</image:loc>
      <image:title>Non-square image size in YOLO training: rect vs square</image:title>
      <image:caption>Non-square image size in YOLO training: rect vs square</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/verify-the-correct-part-when-sorting-mixed-batches</loc>
    <lastmod>2026-11-09T07:02:13-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-06c41fa37a2a9820ec25b908.jpg?v=1794218827</image:loc>
      <image:title>Verify the correct part when sorting mixed batches</image:title>
      <image:caption>Verify the correct part when sorting mixed batches</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/install-opencv-in-termux-on-android-pkg-packages-not-pip-builds</loc>
    <lastmod>2026-11-09T10:50:32-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-cf925d9142103d0524a7add2.jpg?v=1794219110</image:loc>
      <image:title>Install OpenCV in Termux on Android: pkg packages, not pip builds</image:title>
      <image:caption>Install OpenCV in Termux on Android: pkg packages, not pip builds</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/ocr-for-expiration-date-verification-read-inkjet-codes-on-packaging</loc>
    <lastmod>2026-11-09T07:01:56-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-1726aa2dfa68870723432d03.jpg?v=1794219218</image:loc>
      <image:title>OCR for expiration date verification: read inkjet codes on packaging</image:title>
      <image:caption>OCR for expiration date verification: read inkjet codes on packaging</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/coma-and-astigmatism-in-vision-lenses-off-axis-blur-explained</loc>
    <lastmod>2026-11-09T07:01:30-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-ff46bb8cab2536646f808e4b.jpg?v=1794219325</image:loc>
      <image:title>Coma and astigmatism in vision lenses: off-axis blur explained</image:title>
      <image:caption>Coma and astigmatism in vision lenses: off-axis blur explained</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/why-prism-multi-sensor-cameras-need-prism-optimized-lenses</loc>
    <lastmod>2026-11-09T09:25:14-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-b16eda88a74ab92a3d1e4d74.jpg?v=1794219436</image:loc>
      <image:title>Why prism multi-sensor cameras need prism-optimized lenses</image:title>
      <image:caption>Why prism multi-sensor cameras need prism-optimized lenses</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/camera-black-level-setting-when-to-raise-it-above-zero</loc>
    <lastmod>2026-11-09T07:01:22-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-54baf412d7d44c86cada6a8e.jpg?v=1794219543</image:loc>
      <image:title>Camera black level setting: when to raise it above zero</image:title>
      <image:caption>Camera black level setting: when to raise it above zero</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/liquid-lens-focus-sequences-for-traffic-image-capture</loc>
    <lastmod>2026-11-09T09:25:12-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-a811b9e6391f463b796b9e7a.jpg?v=1794219831</image:loc>
      <image:title>Liquid lens focus sequences for traffic image capture</image:title>
      <image:caption>Liquid lens focus sequences for traffic image capture</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/lighting-for-ai-vision-training-stop-retraining-your-model</loc>
    <lastmod>2026-11-09T07:01:48-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-b84ed9e55e9435162e5b57fb.jpg?v=1794219946</image:loc>
      <image:title>Lighting for AI vision training: stop retraining your model</image:title>
      <image:caption>Lighting for AI vision training: stop retraining your model</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/zero-pixels-outside-roi-without-a-per-pixel-loop</loc>
    <lastmod>2026-11-09T14:40:39-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-c764769c0f0c0d8ad602604a.jpg?v=1794220057</image:loc>
      <image:title>Zero pixels outside ROI without a per-pixel loop</image:title>
      <image:caption>Zero pixels outside ROI without a per-pixel loop</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/machine-vision-camera-interfaces-compared-from-camera-link-to-usb3</loc>
    <lastmod>2026-11-09T07:01:51-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-726210f90b16eee0149ce31a.jpg?v=1794220168</image:loc>
      <image:title>Machine vision camera interfaces compared, from Camera Link to USB3</image:title>
      <image:caption>Machine vision camera interfaces compared, from Camera Link to USB3</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/gmsl2-camera-not-detected-fix-the-driver-and-dtb-mismatch</loc>
    <lastmod>2026-11-09T14:14:11-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-a4a1324485f1ba13d9efb0fc.jpg?v=1794220285</image:loc>
      <image:title>GMSL2 camera not detected: fix the driver and DTB mismatch</image:title>
      <image:caption>GMSL2 camera not detected: fix the driver and DTB mismatch</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/depth-point-cloud-not-filtered-which-topic-and-frame-to-use</loc>
    <lastmod>2026-11-09T07:01:35-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-7f02c6dcb9ad468d4db4b27a.jpg?v=1794220614</image:loc>
      <image:title>Depth point cloud not filtered: which topic and frame to use</image:title>
      <image:caption>Depth point cloud not filtered: which topic and frame to use</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/bandpass-filters-chromatic-aberration-and-image-resolution</loc>
    <lastmod>2026-11-09T07:01:18-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-d0ab5576b588260b6008eedc.jpg?v=1794220724</image:loc>
      <image:title>Bandpass filters, chromatic aberration and image resolution</image:title>
      <image:caption>Bandpass filters, chromatic aberration and image resolution</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/measuring-frame-trigger-wait-time-and-polling-resolution</loc>
    <lastmod>2026-11-09T07:01:53-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-9bed3c0ac9a49aa22eb1a2d1.jpg?v=1794220839</image:loc>
      <image:title>Measuring frame trigger wait time and polling resolution</image:title>
      <image:caption>Measuring frame trigger wait time and polling resolution</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/camera-operating-temperature-range-what-happens-outside-it</loc>
    <lastmod>2026-11-09T10:32:27-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-3a0722345f9130c04ccfbf72.jpg?v=1794220955</image:loc>
      <image:title>Camera operating temperature range: what happens outside it</image:title>
      <image:caption>Camera operating temperature range: what happens outside it</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/display-an-aligned-depth-image-in-opencv-16-bit-to-8-bit</loc>
    <lastmod>2026-11-09T07:01:37-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-8e35182cd9b008189a9116ba.jpg?v=1794221068</image:loc>
      <image:title>Display an aligned depth image in OpenCV: 16-bit to 8-bit</image:title>
      <image:caption>Display an aligned depth image in OpenCV: 16-bit to 8-bit</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/camera-frame-timestamp-vs-system-time-why-clocks-differ</loc>
    <lastmod>2026-11-09T07:01:25-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-a591f1d127c7b6bb0884ad8a.jpg?v=1794221398</image:loc>
      <image:title>Camera frame timestamp vs system time: why clocks differ</image:title>
      <image:caption>Camera frame timestamp vs system time: why clocks differ</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/scale-compensation-for-part-height-variation-in-vision-picking</loc>
    <lastmod>2026-11-09T07:02:06-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-3fb70c555381e13b28376779.jpg?v=1794221516</image:loc>
      <image:title>Scale compensation for part height variation in vision picking</image:title>
      <image:caption>Scale compensation for part height variation in vision picking</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/isp-default-settings-that-look-like-compression-artifacts</loc>
    <lastmod>2026-11-09T12:49:44-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-cbce15e3ef22f84675312b1e.jpg?v=1794221629</image:loc>
      <image:title>ISP default settings that look like compression artifacts</image:title>
      <image:caption>ISP default settings that look like compression artifacts</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/build-a-software-auto-exposure-algorithm-the-control-law</loc>
    <lastmod>2026-11-09T23:22:06-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-97fae30ded398082823ac095.jpg?v=1794221742</image:loc>
      <image:title>Build a software auto exposure algorithm: the control law</image:title>
      <image:caption>Build a software auto exposure algorithm: the control law</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/detection-to-ocr-pipeline-crop-detected-regions-then-read-text</loc>
    <lastmod>2026-11-09T07:01:36-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-bec6cc96de752cbc10756fa4.jpg?v=1794221857</image:loc>
      <image:title>Detection to OCR pipeline: crop detected regions then read text</image:title>
      <image:caption>Detection to OCR pipeline: crop detected regions then read text</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/arduino-trigger-to-camera-opto-isolated-input-wiring-and-resistor</loc>
    <lastmod>2026-11-09T20:32:04-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-3617e6749afb367dfbc7316f.jpg?v=1794222175</image:loc>
      <image:title>Arduino trigger to camera opto-isolated input: wiring and resistor</image:title>
      <image:caption>Arduino trigger to camera opto-isolated input: wiring and resistor</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/add-an-enter-key-to-a-barcode-scanner-with-programming-barcodes</loc>
    <lastmod>2026-11-09T13:16:34-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-124e6f25c012dceb90eb39c6.jpg?v=1794222291</image:loc>
      <image:title>Add an Enter key to a barcode scanner with programming barcodes</image:title>
      <image:caption>Add an Enter key to a barcode scanner with programming barcodes</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/event-camera-external-trigger-stops-with-multiple-cameras-open</loc>
    <lastmod>2026-11-09T09:08:21-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-d4d09ab8a973e1baf0c6b1b8.jpg?v=1794222412</image:loc>
      <image:title>Event camera external trigger stops with multiple cameras open</image:title>
      <image:caption>Event camera external trigger stops with multiple cameras open</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/depth-scale-to-meters-conversion-for-raw-pixel-values</loc>
    <lastmod>2026-11-09T23:23:20-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-00d841d492a679140f3b6568.jpg?v=1794222528</image:loc>
      <image:title>Depth scale to meters conversion for raw pixel values</image:title>
      <image:caption>Depth scale to meters conversion for raw pixel values</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/compressed-image-topic-not-published-get-compressed-streams-working</loc>
    <lastmod>2026-11-09T23:09:23-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-2f397f16dcdb31e1fccdc17c.jpg?v=1794222644</image:loc>
      <image:title>Compressed image topic not published: get /compressed streams working</image:title>
      <image:caption>Compressed image topic not published: get /compressed streams working</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/full-resolution-capture-while-showing-a-low-res-preview</loc>
    <lastmod>2026-11-09T07:01:41-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-3d226bfcf7892c88f96dcfe6.jpg?v=1794222955</image:loc>
      <image:title>Full resolution capture while showing a low res preview</image:title>
      <image:caption>Full resolution capture while showing a low res preview</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/slow-2d-capture-frame-rate-on-a-3d-camera-find-the-bottleneck</loc>
    <lastmod>2026-11-09T14:09:24-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-2ec30e121f2901c38359c172.jpg?v=1794223076</image:loc>
      <image:title>Slow 2D capture frame rate on a 3D camera: find the bottleneck</image:title>
      <image:caption>Slow 2D capture frame rate on a 3D camera: find the bottleneck</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/event-camera-imu-sync-quality-evaluation-with-a-shared-trigger</loc>
    <lastmod>2026-11-09T07:01:39-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-8668ad257f0c6a16d6fbea85.jpg?v=1794223197</image:loc>
      <image:title>Event camera IMU sync quality evaluation with a shared trigger</image:title>
      <image:caption>Event camera IMU sync quality evaluation with a shared trigger</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/write-mp4-video-from-a-camera-on-an-embedded-board</loc>
    <lastmod>2026-11-09T07:02:16-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-7576f6e697d4bb95a2669f9c.jpg?v=1794223317</image:loc>
      <image:title>Write MP4 video from a camera on an embedded board</image:title>
      <image:caption>Write MP4 video from a camera on an embedded board</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/uneven-brightness-in-threshold-segmentation-shading-correction-fix</loc>
    <lastmod>2026-11-09T07:46:49-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-f602793e566515896055f879.jpg?v=1794223437</image:loc>
      <image:title>Uneven brightness in threshold segmentation: shading correction fix</image:title>
      <image:caption>Uneven brightness in threshold segmentation: shading correction fix</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/machine-vision-camera-for-continuous-shooting-external-power</loc>
    <lastmod>2026-11-09T20:15:21-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-5bfeb0a857b8231a9ad7d7b8.jpg?v=1794223736</image:loc>
      <image:title>Machine vision camera for continuous shooting, external power</image:title>
      <image:caption>Machine vision camera for continuous shooting, external power</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/opencv-mingw-include-path-fix-no-such-file-for-core-hpp</loc>
    <lastmod>2026-11-09T09:00:44-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-ffc85ce9f2389bb37d821474.jpg?v=1794223859</image:loc>
      <image:title>OpenCV MinGW include path: fix no such file for core.hpp</image:title>
      <image:caption>OpenCV MinGW include path: fix no such file for core.hpp</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/bgr-vs-bayer-pixel-format-on-gige-why-frame-rate-drops</loc>
    <lastmod>2026-11-09T14:38:15-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-ff1363791cc77b507a201fd6.jpg?v=1794223980</image:loc>
      <image:title>BGR vs Bayer pixel format on GigE: why frame rate drops</image:title>
      <image:caption>BGR vs Bayer pixel format on GigE: why frame rate drops</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/point-cloud-filtering-before-surface-reconstruction-the-pipeline</loc>
    <lastmod>2026-11-09T16:47:26-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-345fc9ae990916519531e738.jpg?v=1794224110</image:loc>
      <image:title>Point cloud filtering before surface reconstruction: the pipeline</image:title>
      <image:caption>Point cloud filtering before surface reconstruction: the pipeline</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/camera-attributes-greyed-out-why-controls-lock-and-the-fix</loc>
    <lastmod>2026-11-09T15:46:15-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-3f1a602853e5c3ce9a7c8e3f.jpg?v=1794224232</image:loc>
      <image:title>Camera attributes greyed out: why controls lock and the fix</image:title>
      <image:caption>Camera attributes greyed out: why controls lock and the fix</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/gige-camera-lost-after-a-resource-error-rediscovery-and-recovery</loc>
    <lastmod>2026-11-09T07:01:42-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-4298078e4796f7bafa0b6931.jpg?v=1794224576</image:loc>
      <image:title>GigE camera lost after a resource error: rediscovery and recovery</image:title>
      <image:caption>GigE camera lost after a resource error: rediscovery and recovery</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/last-valid-buffer-before-first-trigger-poll-the-status-call</loc>
    <lastmod>2026-11-09T07:13:40-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-1ecce2c86d6a612583e2740d.jpg?v=1794224698</image:loc>
      <image:title>Last valid buffer before first trigger: poll the status call</image:title>
      <image:caption>Last valid buffer before first trigger: poll the status call</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/adding-visual-inspection-to-a-robot-cell-that-already-picks</loc>
    <lastmod>2026-11-09T21:36:03-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-d5331c141a8ad61a32384be8.jpg?v=1794224821</image:loc>
      <image:title>Adding visual inspection to a robot cell that already picks</image:title>
      <image:caption>Adding visual inspection to a robot cell that already picks</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/ocr-on-scanned-engineering-drawings-read-pdf-line-work-reliably</loc>
    <lastmod>2026-11-09T16:39:35-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-caa38a2a1c17e84d17022e07.jpg?v=1794224954</image:loc>
      <image:title>OCR on scanned engineering drawings: read PDF line work reliably</image:title>
      <image:caption>OCR on scanned engineering drawings: read PDF line work reliably</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/y800-grey-mode-error-87-on-windows-pick-a-supported-format</loc>
    <lastmod>2026-11-09T12:21:27-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-7bd08948bdc96694ca0f6583.jpg?v=1794225077</image:loc>
      <image:title>Y800 grey mode error 87 on Windows: pick a supported format</image:title>
      <image:caption>Y800 grey mode error 87 on Windows: pick a supported format</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/sheet-of-light-3d-robot-guidance-with-a-laser-profile-sensor</loc>
    <lastmod>2026-11-09T15:26:40-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-7437c61d2404a8c2c015b466.jpg?v=1794225420</image:loc>
      <image:title>Sheet of light 3D robot guidance with a laser profile sensor</image:title>
      <image:caption>Sheet of light 3D robot guidance with a laser profile sensor</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/multiple-gentl-cameras-in-one-process-one-acquisition-object-each</loc>
    <lastmod>2026-11-09T07:01:55-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-eec4b8c946811fe351334963.jpg?v=1794225542</image:loc>
      <image:title>Multiple GenTL cameras in one process: one acquisition object each</image:title>
      <image:caption>Multiple GenTL cameras in one process: one acquisition object each</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/read-a-sequence-of-images-and-log-pixel-values-to-file</loc>
    <lastmod>2026-11-09T21:02:02-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-e91a134225d832b2f4bc8a66.jpg?v=1794225674</image:loc>
      <image:title>Read a sequence of images and log pixel values to file</image:title>
      <image:caption>Read a sequence of images and log pixel values to file</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/parametric-part-teaching-by-shape-faster-locating-without-scanning</loc>
    <lastmod>2026-11-09T07:03:23-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-d9ea31fdd919ec10a93ad431.jpg?v=1794225803</image:loc>
      <image:title>Parametric part teaching by shape: faster locating without scanning</image:title>
      <image:caption>Parametric part teaching by shape: faster locating without scanning</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/auto-threshold-methods-for-grayscale-images-pick-the-right-one</loc>
    <lastmod>2026-11-09T12:14:54-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-7b7c38bf37612a069adae87c.jpg?v=1794225878</image:loc>
      <image:title>Auto threshold methods for grayscale images: pick the right one</image:title>
      <image:caption>Auto threshold methods for grayscale images: pick the right one</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/frame-grabber-not-detected-diagnose-the-card-before-the-driver</loc>
    <lastmod>2026-11-09T15:46:17-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-1bdc6e2ba7cf31c4467d7138.jpg?v=1794226156</image:loc>
      <image:title>Frame grabber not detected: diagnose the card before the driver</image:title>
      <image:caption>Frame grabber not detected: diagnose the card before the driver</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/solder-pad-inspection-lighting-separate-copper-wire-from-dark-edges</loc>
    <lastmod>2026-11-09T07:10:27-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-236476daea4a91f68201b8b6.jpg?v=1794226227</image:loc>
      <image:title>Solder pad inspection lighting: separate copper wire from dark edges</image:title>
      <image:caption>Solder pad inspection lighting: separate copper wire from dark edges</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/usb-c-cable-timeouts-on-a-usb3-camera-length-and-data-rate</loc>
    <lastmod>2026-11-09T19:27:28-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-ec25b6c55b988c46c68426bc.jpg?v=1794226290</image:loc>
      <image:title>USB-C cable timeouts on a USB3 camera: length and data rate</image:title>
      <image:caption>USB-C cable timeouts on a USB3 camera: length and data rate</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/sparse-reference-point-calibration-minimum-points-per-model</loc>
    <lastmod>2026-11-09T07:12:33-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-b216bc7c0eafe8bfe5097958.jpg?v=1794226353</image:loc>
      <image:title>Sparse reference point calibration: minimum points per model</image:title>
      <image:caption>Sparse reference point calibration: minimum points per model</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/frame-grabber-diagnostic-test-failed-isolate-board-from-camera</loc>
    <lastmod>2026-11-09T13:22:05-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-5fe685a6b59b6086cb450ba8.jpg?v=1794226417</image:loc>
      <image:title>Frame grabber diagnostic test failed: isolate board from camera</image:title>
      <image:caption>Frame grabber diagnostic test failed: isolate board from camera</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/perspectivetransform-scn-1-m-cols-point-mat-or-empty-homography</loc>
    <lastmod>2026-11-09T11:52:12-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-425da43e5aa36a290e800055.jpg?v=1794226678</image:loc>
      <image:title>perspectiveTransform scn + 1 == m.cols: point Mat or empty homography</image:title>
      <image:caption>perspectiveTransform scn + 1 == m.cols: point Mat or empty homography</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/fixing-binarization-for-particle-measurement-with-height-variation</loc>
    <lastmod>2026-11-09T14:12:59-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-6b9f4c61bfe9f921514ab8d4.jpg?v=1794226742</image:loc>
      <image:title>Fixing binarization for particle measurement with height variation</image:title>
      <image:caption>Fixing binarization for particle measurement with height variation</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/report-unique-barcodes-only-set-the-duplicate-window</loc>
    <lastmod>2026-11-09T09:27:39-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-7a5623ee3d35754e5eb6bc7f.jpg?v=1794226805</image:loc>
      <image:title>Report unique barcodes only: set the duplicate window</image:title>
      <image:caption>Report unique barcodes only: set the duplicate window</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/pixel-values-to-nits-calibrating-a-camera-for-luminance</loc>
    <lastmod>2026-11-09T07:21:07-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-f11f2a3c2ee5e11f5d1429d6.jpg?v=1794226867</image:loc>
      <image:title>Pixel values to nits: calibrating a camera for luminance</image:title>
      <image:caption>Pixel values to nits: calibrating a camera for luminance</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/use-a-usb-camera-in-labview-drivers-vis-and-resolution-limits</loc>
    <lastmod>2026-11-09T12:21:26-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-deeba53ad04c71ef4105cc6a.jpg?v=1794226932</image:loc>
      <image:title>Use a USB camera in LabVIEW: drivers, VIs and resolution limits</image:title>
      <image:caption>Use a USB camera in LabVIEW: drivers, VIs and resolution limits</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/calling-a-native-image-processing-dll-from-visual-basic</loc>
    <lastmod>2026-11-09T09:17:12-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-db07ec8538db54984654cac8.jpg?v=1794227220</image:loc>
      <image:title>Calling a native image processing DLL from Visual Basic</image:title>
      <image:caption>Calling a native image processing DLL from Visual Basic</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/multi-camera-end-of-line-inspection-sizing-the-cycle-time</loc>
    <lastmod>2026-11-09T07:28:06-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-85c17e9e5cda38f00c3576b9.jpg?v=1794227286</image:loc>
      <image:title>Multi-camera end-of-line inspection: sizing the cycle time</image:title>
      <image:caption>Multi-camera end-of-line inspection: sizing the cycle time</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/gige-camera-on-a-different-subnet-force-the-ip-assignment</loc>
    <lastmod>2026-11-09T07:29:09-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-94b9c6504fc3a69e74986db8.jpg?v=1794227349</image:loc>
      <image:title>GigE camera on a different subnet: force the IP assignment</image:title>
      <image:caption>GigE camera on a different subnet: force the IP assignment</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/choosing-barcode-scanner-communications-for-2000-reads-per-minute</loc>
    <lastmod>2026-11-09T08:31:27-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-e26320e1e8ba263b8b079ada.jpg?v=1794227413</image:loc>
      <image:title>Choosing barcode scanner communications for 2000 reads per minute</image:title>
      <image:caption>Choosing barcode scanner communications for 2000 reads per minute</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/plc-to-hmi-barcode-data-handshake-queue-every-scan-without-drops</loc>
    <lastmod>2026-11-09T07:31:20-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-8155f060df47d4f985d45d74.jpg?v=1794227480</image:loc>
      <image:title>PLC to HMI barcode data handshake: queue every scan without drops</image:title>
      <image:caption>PLC to HMI barcode data handshake: queue every scan without drops</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/inspect-steps-and-states-a-vision-inspection-architecture</loc>
    <lastmod>2026-11-09T11:55:47-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-a358ff652a89234e6ea8f872.jpg?v=1794227761</image:loc>
      <image:title>Inspect steps and states: a vision inspection architecture</image:title>
      <image:caption>Inspect steps and states: a vision inspection architecture</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/opencv-mat-int64-data-type-two-ways-to-store-64-bit-values</loc>
    <lastmod>2026-11-09T07:37:04-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-9015e2f7821b47a9628252f3.jpg?v=1794227823</image:loc>
      <image:title>OpenCV Mat int64 data type: two ways to store 64-bit values</image:title>
      <image:caption>OpenCV Mat int64 data type: two ways to store 64-bit values</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/align-depth-and-color-without-the-camera-sdk-pipeline</loc>
    <lastmod>2026-11-09T07:38:06-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-f7259cd3dee5444a2ce6c149.jpg?v=1794227886</image:loc>
      <image:title>Align depth and color without the camera SDK pipeline</image:title>
      <image:caption>Align depth and color without the camera SDK pipeline</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/roi-pixel-coordinate-extraction-list-every-point-inside-the-region</loc>
    <lastmod>2026-11-09T07:39:12-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-dc69b186f6d795ec9923a2fb.jpg?v=1794227952</image:loc>
      <image:title>ROI pixel coordinate extraction: list every point inside the region</image:title>
      <image:caption>ROI pixel coordinate extraction: list every point inside the region</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/code-128-control-characters-for-keyboard-wedge-suffixes</loc>
    <lastmod>2026-11-09T09:27:38-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-b5a86373f6aaa491e243cd29.jpg?v=1794228016</image:loc>
      <image:title>Code 128 control characters for keyboard wedge suffixes</image:title>
      <image:caption>Code 128 control characters for keyboard wedge suffixes</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/cap-images-can-t-find-starting-number-fix-the-image-sequence-path</loc>
    <lastmod>2026-11-09T07:44:57-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-8db8b9a676f01fb3b6209963.jpg?v=1794228297</image:loc>
      <image:title>CAP_IMAGES can&apos;t find starting number: fix the image sequence path</image:title>
      <image:caption>CAP_IMAGES can&apos;t find starting number: fix the image sequence path</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/auto-threshold-for-hough-line-detection-when-image-brightness-varies</loc>
    <lastmod>2026-11-09T07:46:46-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-c0b15e0cd06e75f019bf0252.jpg?v=1794228406</image:loc>
      <image:title>Auto threshold for Hough line detection when image brightness varies</image:title>
      <image:caption>Auto threshold for Hough line detection when image brightness varies</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/bayesian-color-image-segmentation-train-classify-threshold</loc>
    <lastmod>2026-11-09T20:15:16-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-942a75f073a1717c5014342e.jpg?v=1794228471</image:loc>
      <image:title>Bayesian color image segmentation: train, classify, threshold</image:title>
      <image:caption>Bayesian color image segmentation: train, classify, threshold</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/custom-inspection-interface-histogram-with-no-dependencies</loc>
    <lastmod>2026-11-09T07:48:57-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-f44df5e8255c7a523bca5793.jpg?v=1794228537</image:loc>
      <image:title>Custom inspection interface: histogram with no dependencies</image:title>
      <image:caption>Custom inspection interface: histogram with no dependencies</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/inspection-step-variables-disconnected-on-edit-how-to-keep-them-wired</loc>
    <lastmod>2026-11-09T14:31:25-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-3c04c70956490a771c907ef7.jpg?v=1794228599</image:loc>
      <image:title>Inspection step variables disconnected on edit: how to keep them wired</image:title>
      <image:caption>Inspection step variables disconnected on edit: how to keep them wired</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/genicam-attribute-not-writable-set-the-feature-mode-first</loc>
    <lastmod>2026-11-09T07:53:57-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-0379dfb923398501d2945705.jpg?v=1794228836</image:loc>
      <image:title>GenICam attribute not writable: set the feature mode first</image:title>
      <image:caption>GenICam attribute not writable: set the feature mode first</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/use-an-integrated-webcam-for-image-acquisition-in-vision-software</loc>
    <lastmod>2026-11-09T23:22:10-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-77c6b9d53363418c759ac760.jpg?v=1794228903</image:loc>
      <image:title>Use an integrated webcam for image acquisition in vision software</image:title>
      <image:caption>Use an integrated webcam for image acquisition in vision software</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/software-barcode-decode-in-your-own-camera-app-build-or-buy-a-reader</loc>
    <lastmod>2026-11-09T13:32:04-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-84cb8921d05dbbe57d2bc4db.jpg?v=1794228966</image:loc>
      <image:title>Software barcode decode in your own camera app: build or buy a reader</image:title>
      <image:caption>Software barcode decode in your own camera app: build or buy a reader</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/remove-spurs-in-a-binary-image-but-keep-the-longest-line</loc>
    <lastmod>2026-11-09T09:36:37-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-ed62e5d10ecfce09c556a2a2.jpg?v=1794229034</image:loc>
      <image:title>Remove spurs in a binary image but keep the longest line</image:title>
      <image:caption>Remove spurs in a binary image but keep the longest line</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/stereo-camera-low-fps-no-detection-measure-the-delivered-frame-rate</loc>
    <lastmod>2026-11-09T17:42:05-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-54009d54c4043faccd0d3c42.jpg?v=1794229097</image:loc>
      <image:title>Stereo camera low fps, no detection: measure the delivered frame rate</image:title>
      <image:caption>Stereo camera low fps, no detection: measure the delivered frame rate</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/deep-learning-defect-inspection-how-many-samples-you-really-need</loc>
    <lastmod>2026-11-09T16:06:12-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-077aa337cc2241e2ed2bc884.jpg?v=1794229382</image:loc>
      <image:title>Deep learning defect inspection: how many samples you really need</image:title>
      <image:caption>Deep learning defect inspection: how many samples you really need</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/frame-grabber-camera-file-missing-configure-an-unlisted-camera</loc>
    <lastmod>2026-11-09T09:52:15-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-0a56b4687341c50e3ac491de.jpg?v=1794229448</image:loc>
      <image:title>Frame grabber camera file missing: configure an unlisted camera</image:title>
      <image:caption>Frame grabber camera file missing: configure an unlisted camera</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/align-images-before-background-subtraction-garment-masking</loc>
    <lastmod>2026-11-09T08:05:31-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-cbbe4a9f0b189d837f50ac1e.jpg?v=1794229531</image:loc>
      <image:title>Align images before background subtraction: garment masking</image:title>
      <image:caption>Align images before background subtraction: garment masking</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/two-firewire-cameras-not-detected-fix-the-bus-power-problem</loc>
    <lastmod>2026-11-09T08:06:48-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-8d6210058dcc7de815003497.jpg?v=1794229608</image:loc>
      <image:title>Two FireWire cameras not detected: fix the bus power problem</image:title>
      <image:caption>Two FireWire cameras not detected: fix the bus power problem</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/vision-application-runtime-deployment-to-a-target-machine</loc>
    <lastmod>2026-11-09T14:40:38-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-f4e22eb967d9dbc67e7b78c6.jpg?v=1794229671</image:loc>
      <image:title>Vision application runtime deployment to a target machine</image:title>
      <image:caption>Vision application runtime deployment to a target machine</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/choose-a-codec-for-grayscale-machine-vision-video-files</loc>
    <lastmod>2026-11-10T00:13:34-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-a485974b86d232d8a185e58b.jpg?v=1794229917</image:loc>
      <image:title>Choose a codec for grayscale machine vision video files</image:title>
      <image:caption>Choose a codec for grayscale machine vision video files</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/ip-ratings-for-machine-vision-lights-read-the-digits-first</loc>
    <lastmod>2026-11-09T08:13:18-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-b6e6c66eb3932cdf6160f243.jpg?v=1794229998</image:loc>
      <image:title>IP ratings for machine vision lights: read the digits first</image:title>
      <image:caption>IP ratings for machine vision lights: read the digits first</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/print-mark-detection-on-packaging-sensor-or-smart-camera</loc>
    <lastmod>2026-11-09T10:57:03-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-cceb5218a1603bcb72672ba2.jpg?v=1794230084</image:loc>
      <image:title>Print mark detection on packaging: sensor or smart camera</image:title>
      <image:caption>Print mark detection on packaging: sensor or smart camera</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/smart-camera-to-plc-over-tcp-trigger-and-pass-fail</loc>
    <lastmod>2026-11-09T12:14:59-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-388001d911fa10b3ddb405e9.jpg?v=1794230149</image:loc>
      <image:title>Smart camera to PLC over TCP: trigger and pass/fail</image:title>
      <image:caption>Smart camera to PLC over TCP: trigger and pass/fail</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/trigger-a-smart-camera-over-tcp-with-ascii-commands-and-read-results</loc>
    <lastmod>2026-11-09T14:29:11-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-ef6841d7e687a5f013b55b97.jpg?v=1794230213</image:loc>
      <image:title>Trigger a smart camera over TCP with ASCII commands and read results</image:title>
      <image:caption>Trigger a smart camera over TCP with ASCII commands and read results</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/appsrc-not-negotiated-error-fix-caps-framerate-and-format</loc>
    <lastmod>2026-11-09T16:39:34-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-e177000eb69c0f46d8a318bb.jpg?v=1794230459</image:loc>
      <image:title>Appsrc not-negotiated error: fix caps framerate and format</image:title>
      <image:caption>Appsrc not-negotiated error: fix caps framerate and format</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/external-trigger-timeout-wrong-pin-or-wrong-ground</loc>
    <lastmod>2026-11-09T08:22:10-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-7923b61bf75426295f5159bf.jpg?v=1794230529</image:loc>
      <image:title>External trigger timeout: wrong pin or wrong ground?</image:title>
      <image:caption>External trigger timeout: wrong pin or wrong ground?</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/gst-launch-syntax-error-with-parentheses-quoting-camera-caps-strings</loc>
    <lastmod>2026-11-09T12:21:25-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-578829bebd59fe1e7587fe72.jpg?v=1794230597</image:loc>
      <image:title>gst-launch syntax error with parentheses: quoting camera caps strings</image:title>
      <image:caption>gst-launch syntax error with parentheses: quoting camera caps strings</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/vision-system-to-plc-send-pass-fail-results-not-images</loc>
    <lastmod>2026-11-09T08:48:11-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-9b7ccd993379413c6a99e1c5.jpg?v=1794230660</image:loc>
      <image:title>Vision system to PLC: send pass-fail results, not images</image:title>
      <image:caption>Vision system to PLC: send pass-fail results, not images</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/rename-a-smart-camera-network-name-without-conflicts</loc>
    <lastmod>2026-11-09T12:14:56-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-77faa8d4381f2765becc750c.jpg?v=1794230731</image:loc>
      <image:title>Rename a smart camera network name without conflicts</image:title>
      <image:caption>Rename a smart camera network name without conflicts</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/bounding-box-area-vs-object-area-which-should-you-measure</loc>
    <lastmod>2026-11-09T08:30:08-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-90f5e00ef7f0a877a7ab3173.jpg?v=1794231008</image:loc>
      <image:title>Bounding box area vs object area: which should you measure</image:title>
      <image:caption>Bounding box area vs object area: which should you measure</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/barcode-recipe-lookup-in-a-plc-udt-arrays-and-search-logic</loc>
    <lastmod>2026-11-09T12:23:51-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-d5d737b1ef241e584a8a0a37.jpg?v=1794231082</image:loc>
      <image:title>Barcode recipe lookup in a PLC: UDT arrays and search logic</image:title>
      <image:caption>Barcode recipe lookup in a PLC: UDT arrays and search logic</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/labview-vi-never-advances-fix-the-vision-inspection-state-machine</loc>
    <lastmod>2026-11-09T08:32:39-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-3c7e53fc663bd5c026bb3b31.jpg?v=1794231159</image:loc>
      <image:title>LabVIEW VI never advances: fix the vision inspection state machine</image:title>
      <image:caption>LabVIEW VI never advances: fix the vision inspection state machine</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/vision-dll-fails-after-program-stop-fix-the-teardown</loc>
    <lastmod>2026-11-09T15:46:20-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-7a8349ec586ae2e50f7bf49a.jpg?v=1794231225</image:loc>
      <image:title>Vision DLL fails after program stop: fix the teardown</image:title>
      <image:caption>Vision DLL fails after program stop: fix the teardown</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/keep-android-camera-preview-running-after-mediarecorder-stops</loc>
    <lastmod>2026-11-09T19:27:24-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-f37ce6e482e29731dfcd6c7c.jpg?v=1794231292</image:loc>
      <image:title>Keep Android camera preview running after MediaRecorder stops</image:title>
      <image:caption>Keep Android camera preview running after MediaRecorder stops</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/canny-before-findcontours-leaves-open-contours-threshold-the-mask</loc>
    <lastmod>2026-11-09T20:15:18-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-d48540199fd8969688e2ca45.jpg?v=1794231548</image:loc>
      <image:title>Canny before findContours leaves open contours: threshold the mask</image:title>
      <image:caption>Canny before findContours leaves open contours: threshold the mask</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/fisheye-depth-model-domain-shift-mix-domains-build-sparse-depth-gt</loc>
    <lastmod>2026-11-09T20:34:28-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-c8a930559d1b79468fcdd63e.jpg?v=1794231615</image:loc>
      <image:title>Fisheye depth model domain shift: mix domains, build sparse depth GT</image:title>
      <image:caption>Fisheye depth model domain shift: mix domains, build sparse depth GT</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/opencv-setnumthreads-cap-cpu-usage-while-streaming</loc>
    <lastmod>2026-11-09T09:43:29-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-31f1f530fcc120159f703d89.jpg?v=1794231682</image:loc>
      <image:title>OpenCV setNumThreads: cap CPU usage while streaming</image:title>
      <image:caption>OpenCV setNumThreads: cap CPU usage while streaming</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/bayer-decode-with-a-lookup-table-fast-lut-demosaic</loc>
    <lastmod>2026-11-09T08:42:26-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-4bed65b30a0a9e71cb6a8052.jpg?v=1794231746</image:loc>
      <image:title>Bayer decode with a lookup table: fast LUT demosaic</image:title>
      <image:caption>Bayer decode with a lookup table: fast LUT demosaic</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/frame-grabber-stuck-at-low-resolution-test-the-directshow-path</loc>
    <lastmod>2026-11-09T08:43:36-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-f1ee9646d4de06e2e6a5ba03.jpg?v=1794231816</image:loc>
      <image:title>Frame grabber stuck at low resolution: test the DirectShow path</image:title>
      <image:caption>Frame grabber stuck at low resolution: test the DirectShow path</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/send-a-vision-match-result-to-a-plc-output</loc>
    <lastmod>2026-11-09T18:13:09-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-ac7ec8b9be583bbd7febed08.jpg?v=1794232087</image:loc>
      <image:title>Send a vision match result to a PLC output</image:title>
      <image:caption>Send a vision match result to a PLC output</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/handwritten-signature-ocr-train-and-classify-strokes</loc>
    <lastmod>2026-11-09T08:49:19-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-d7cf0758234bad53a70a3018.jpg?v=1794232159</image:loc>
      <image:title>Handwritten signature OCR: train and classify strokes</image:title>
      <image:caption>Handwritten signature OCR: train and classify strokes</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/legacy-frame-grabber-on-a-new-os-migration-path-that-works</loc>
    <lastmod>2026-11-09T14:11:48-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-2494bdfe390ca696ddb58a27.jpg?v=1794232228</image:loc>
      <image:title>Legacy frame grabber on a new OS: migration path that works</image:title>
      <image:caption>Legacy frame grabber on a new OS: migration path that works</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/event-camera-bias-values-are-not-contrast-thresholds</loc>
    <lastmod>2026-11-09T08:51:39-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-652f573195a7dacd86c3f1dd.jpg?v=1794232299</image:loc>
      <image:title>Event camera bias values are not contrast thresholds</image:title>
      <image:caption>Event camera bias values are not contrast thresholds</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/interactive-roi-selection-find-the-region-a-user-clicked</loc>
    <lastmod>2026-11-09T11:52:10-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-371de33f444b7243933caae0.jpg?v=1794232368</image:loc>
      <image:title>Interactive ROI selection: find the region a user clicked</image:title>
      <image:caption>Interactive ROI selection: find the region a user clicked</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/depth-camera-shows-an-all-ff-serial-number-hardware-not-settings</loc>
    <lastmod>2026-11-09T08:57:15-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-3a7ffe30a86d7b4c83cdb525.jpg?v=1794232635</image:loc>
      <image:title>Depth camera shows an all-FF serial number: hardware, not settings</image:title>
      <image:caption>Depth camera shows an all-FF serial number: hardware, not settings</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/load-a-recipe-table-into-a-custom-vision-ui-without-dependency-errors</loc>
    <lastmod>2026-11-09T11:10:24-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-86124a8434554de5f69ada2e.jpg?v=1794232701</image:loc>
      <image:title>Load a recipe table into a custom vision UI without dependency errors</image:title>
      <image:caption>Load a recipe table into a custom vision UI without dependency errors</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/depth-camera-stream-read-errors-on-a-drone-power-and-link-checks</loc>
    <lastmod>2026-11-09T22:23:21-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-81e0f44e59de4b9574015d9d.jpg?v=1794232769</image:loc>
      <image:title>Depth camera stream read errors on a drone: power and link checks</image:title>
      <image:caption>Depth camera stream read errors on a drone: power and link checks</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/display-a-camera-image-on-a-vga-output-from-a-vision-controller</loc>
    <lastmod>2026-11-09T14:40:36-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-bafa2f0f8e7ed4ec60c1ad19.jpg?v=1794232837</image:loc>
      <image:title>Display a camera image on a VGA output from a vision controller</image:title>
      <image:caption>Display a camera image on a VGA output from a vision controller</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/vision-sensor-ok-ng-output-to-a-plc-wiring-it-so-results-arrive</loc>
    <lastmod>2026-11-09T12:37:10-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-ed694e3632b9f54375650f40.jpg?v=1794232917</image:loc>
      <image:title>Vision sensor OK/NG output to a PLC: wiring it so results arrive</image:title>
      <image:caption>Vision sensor OK/NG output to a PLC: wiring it so results arrive</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/lighting-trials-for-oversized-parts-run-them-yourself</loc>
    <lastmod>2026-11-09T09:06:05-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-084bc776bd5816e259c2239c.jpg?v=1794233165</image:loc>
      <image:title>Lighting trials for oversized parts: run them yourself</image:title>
      <image:caption>Lighting trials for oversized parts: run them yourself</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/3d-depth-camera-on-an-arm-sbc-usb3-bandwidth-and-cpu-budget</loc>
    <lastmod>2026-11-09T14:14:10-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-45b3114f8066788272a1ac01.jpg?v=1794233231</image:loc>
      <image:title>3D depth camera on an ARM SBC: USB3 bandwidth and CPU budget</image:title>
      <image:caption>3D depth camera on an ARM SBC: USB3 bandwidth and CPU budget</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/camera-calibration-from-a-single-photo-with-multiple-chessboards</loc>
    <lastmod>2026-11-09T09:08:19-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-2f8ec17bd24094603f6e0ce3.jpg?v=1794233299</image:loc>
      <image:title>Camera calibration from a single photo with multiple chessboards</image:title>
      <image:caption>Camera calibration from a single photo with multiple chessboards</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/ascii-barcode-data-framing-in-the-plc-receive-buffer-nulls-and-races</loc>
    <lastmod>2026-11-09T13:15:23-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-49d942fe48c9d8d681922bdf.jpg?v=1794233369</image:loc>
      <image:title>ASCII barcode data framing in the PLC receive buffer: nulls and races</image:title>
      <image:caption>ASCII barcode data framing in the PLC receive buffer: nulls and races</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/continuous-barcode-detection-with-a-live-preview-window</loc>
    <lastmod>2026-11-09T11:09:04-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-ce9136f0ed5b133a9acb090b.jpg?v=1794233438</image:loc>
      <image:title>Continuous barcode detection with a live preview window</image:title>
      <image:caption>Continuous barcode detection with a live preview window</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/checkerboard-corners-not-detected-fix-gaps-in-your-target</loc>
    <lastmod>2026-11-09T14:12:58-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-f629467b6e2c4ac17ed078f7.jpg?v=1794233702</image:loc>
      <image:title>Checkerboard corners not detected: fix gaps in your target</image:title>
      <image:caption>Checkerboard corners not detected: fix gaps in your target</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/camera-settings-saved-but-not-applied-at-open-fix-the-locale</loc>
    <lastmod>2026-11-09T09:16:07-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-14f0a164aa57c08c2be4ae3f.jpg?v=1794233767</image:loc>
      <image:title>Camera settings saved but not applied at open: fix the locale</image:title>
      <image:caption>Camera settings saved but not applied at open: fix the locale</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/inverted-colors-in-opengl-image-display-viewers-why-zoom-flips-them</loc>
    <lastmod>2026-11-09T23:52:09-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-9a2a146742eee39340507d64.jpg?v=1794233832</image:loc>
      <image:title>Inverted colors in OpenGL image display viewers: why zoom flips them</image:title>
      <image:caption>Inverted colors in OpenGL image display viewers: why zoom flips them</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/wire-a-barcode-scanner-rs232-ascii-string-to-a-plc-serial-port</loc>
    <lastmod>2026-11-09T09:18:23-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-ad342d1f0acd42c7d8f16845.jpg?v=1794233903</image:loc>
      <image:title>Wire a barcode scanner RS232 ASCII string to a PLC serial port</image:title>
      <image:caption>Wire a barcode scanner RS232 ASCII string to a PLC serial port</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/drive-servos-from-a-vision-board-without-pwm-pins</loc>
    <lastmod>2026-11-09T09:19:36-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-b17a45aafae3e13f431dd216.jpg?v=1794233976</image:loc>
      <image:title>Drive servos from a vision board without PWM pins</image:title>
      <image:caption>Drive servos from a vision board without PWM pins</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/resolve-25-micron-features-at-10-cm-working-distance</loc>
    <lastmod>2026-11-09T14:58:49-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-ed9dd23266806992d72d691a.jpg?v=1794234244</image:loc>
      <image:title>Resolve 25 micron features at 10 cm working distance</image:title>
      <image:caption>Resolve 25 micron features at 10 cm working distance</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/sensor-resolution-in-lp-mm-match-lens-mtf-to-pixel-pitch</loc>
    <lastmod>2026-11-09T14:58:49-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-8291a0f57e97c64ab29353ce.jpg?v=1794234312</image:loc>
      <image:title>Sensor resolution in lp/mm: match lens MTF to pixel pitch</image:title>
      <image:caption>Sensor resolution in lp/mm: match lens MTF to pixel pitch</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/close-range-depth-camera-for-1mm-resolution-at-5-15-cm</loc>
    <lastmod>2026-11-09T17:35:19-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-27873816feb041a51b49eb1e.jpg?v=1794234381</image:loc>
      <image:title>Close range depth camera for 1mm resolution at 5-15 cm</image:title>
      <image:caption>Close range depth camera for 1mm resolution at 5-15 cm</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/barcode-numeric-range-matching-in-a-plc-compare-leading-digits</loc>
    <lastmod>2026-11-09T09:27:36-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-e92cf1d13e991737a52f5275.jpg?v=1794234456</image:loc>
      <image:title>Barcode numeric range matching in a PLC: compare leading digits</image:title>
      <image:caption>Barcode numeric range matching in a PLC: compare leading digits</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/change-camera-settings-over-opc-ua-from-your-plc</loc>
    <lastmod>2026-11-09T12:47:12-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-d146f8f803c8eeacb7412498.jpg?v=1794234525</image:loc>
      <image:title>Change camera settings over OPC UA from your PLC</image:title>
      <image:caption>Change camera settings over OPC UA from your PLC</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/smart-camera-image-buffers-full-match-capture-to-processing-rate</loc>
    <lastmod>2026-11-09T16:01:43-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-913e25cb354951a74956a242.jpg?v=1794234785</image:loc>
      <image:title>Smart camera image buffers full: match capture to processing rate</image:title>
      <image:caption>Smart camera image buffers full: match capture to processing rate</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/two-identical-usb-cameras-same-name-open-one-by-port</loc>
    <lastmod>2026-11-09T09:34:16-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-6bb5189a4ed3e4e61172927a.jpg?v=1794234856</image:loc>
      <image:title>Two identical USB cameras: same name, open one by port</image:title>
      <image:caption>Two identical USB cameras: same name, open one by port</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/close-focus-distance-for-cs-mount-lens-ocr-at-127-mm</loc>
    <lastmod>2026-11-09T12:03:39-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-f4f90761739664810f3081c9.jpg?v=1794234927</image:loc>
      <image:title>Close focus distance for CS-mount lens OCR at 127 mm</image:title>
      <image:caption>Close focus distance for CS-mount lens OCR at 127 mm</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/fit-an-ellipse-to-a-noisy-contour-with-opencv-moments-and-ransac</loc>
    <lastmod>2026-11-09T13:59:12-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-dd04b5239c08fc87cf46e932.jpg?v=1794234995</image:loc>
      <image:title>Fit an ellipse to a noisy contour with OpenCV moments and RANSAC</image:title>
      <image:caption>Fit an ellipse to a noisy contour with OpenCV moments and RANSAC</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/multiple-object-detection-in-one-snapshot-pick-a-full-tray-per-cycle</loc>
    <lastmod>2026-11-09T14:31:26-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-01b9aafc69f4ac37f1abb929.jpg?v=1794235067</image:loc>
      <image:title>Multiple object detection in one snapshot: pick a full tray per cycle</image:title>
      <image:caption>Multiple object detection in one snapshot: pick a full tray per cycle</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/hmi-barcode-scan-app-vs-browser-camera-access</loc>
    <lastmod>2026-11-09T09:42:20-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-69077b1f42cf5b3273263dca.jpg?v=1794235340</image:loc>
      <image:title>HMI barcode scan: app vs browser camera access</image:title>
      <image:caption>HMI barcode scan: app vs browser camera access</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/coordinate-system-update-differs-in-a-dll-or-exe-vs-subvi</loc>
    <lastmod>2026-11-09T23:52:08-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-7acf97d1441fb71d0b062b79.jpg?v=1794235407</image:loc>
      <image:title>Coordinate system update differs in a DLL or EXE vs SubVI</image:title>
      <image:caption>Coordinate system update differs in a DLL or EXE vs SubVI</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/flat-glass-scratch-inspection-lighting-dark-field-first</loc>
    <lastmod>2026-11-09T09:44:43-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-838349740c976703a5251e09.jpg?v=1794235483</image:loc>
      <image:title>Flat glass scratch inspection lighting: dark field first</image:title>
      <image:caption>Flat glass scratch inspection lighting: dark field first</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/vision-guided-robot-repeatability-with-round-symmetric-parts</loc>
    <lastmod>2026-11-09T12:11:24-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-74e09dc9ebe2d9320579ec1e.jpg?v=1794235563</image:loc>
      <image:title>Vision guided robot repeatability with round symmetric parts</image:title>
      <image:caption>Vision guided robot repeatability with round symmetric parts</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/pulsed-led-overdrive-in-machine-vision-how-bright-is-safe</loc>
    <lastmod>2026-11-09T09:47:10-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-f52b5e5d978ac0fd95db08e4.jpg?v=1794235630</image:loc>
      <image:title>Pulsed LED overdrive in machine vision: how bright is safe</image:title>
      <image:caption>Pulsed LED overdrive in machine vision: how bright is safe</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/frame-grabber-interface-name-mismatch-fix-bad-interface-errors</loc>
    <lastmod>2026-11-09T09:52:14-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-96b07806feefd3a064c93f47.jpg?v=1794235934</image:loc>
      <image:title>Frame grabber interface name mismatch: fix bad interface errors</image:title>
      <image:caption>Frame grabber interface name mismatch: fix bad interface errors</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/enumerate-camera-interface-names-with-an-index-loop</loc>
    <lastmod>2026-11-09T14:11:47-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-565a14804a31004f754baab3.jpg?v=1794236000</image:loc>
      <image:title>Enumerate camera interface names with an index loop</image:title>
      <image:caption>Enumerate camera interface names with an index loop</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/film-optical-density-measurement-with-two-exposure-hdr-imaging</loc>
    <lastmod>2026-11-09T09:54:27-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-24e75502eafc5cca9f187a66.jpg?v=1794236067</image:loc>
      <image:title>Film optical density measurement with two-exposure HDR imaging</image:title>
      <image:caption>Film optical density measurement with two-exposure HDR imaging</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/barcode-scanner-cr-lf-suffix-make-enter-commit-scans-in-your-hmi</loc>
    <lastmod>2026-11-09T10:48:10-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-2c0e8d98e129cdea466532a1.jpg?v=1794236139</image:loc>
      <image:title>Barcode scanner CR LF suffix: make Enter commit scans in your HMI</image:title>
      <image:caption>Barcode scanner CR LF suffix: make Enter commit scans in your HMI</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/touch-screen-control-for-a-vision-system-front-panel</loc>
    <lastmod>2026-11-09T09:56:47-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-5110357b9637f335916454aa.jpg?v=1794236207</image:loc>
      <image:title>Touch screen control for a vision system front panel</image:title>
      <image:caption>Touch screen control for a vision system front panel</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/barcode-scanner-interface-to-a-plc-ethernet-serial-or-usb</loc>
    <lastmod>2026-11-09T10:01:05-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-cc753e92046339043b967ce7.jpg?v=1794236465</image:loc>
      <image:title>Barcode scanner interface to a PLC: Ethernet, serial or USB</image:title>
      <image:caption>Barcode scanner interface to a PLC: Ethernet, serial or USB</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/nd-filters-for-exposure-control-optical-density-to-aperture</loc>
    <lastmod>2026-11-09T10:02:18-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-2c0cad4a8818eb49adc78317.jpg?v=1794236538</image:loc>
      <image:title>ND filters for exposure control: optical density to aperture</image:title>
      <image:caption>ND filters for exposure control: optical density to aperture</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/led-binning-colour-and-brightness-variation-between-orders</loc>
    <lastmod>2026-11-09T10:03:33-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-c00dced0fbc6afce1d7cf9d2.jpg?v=1794236613</image:loc>
      <image:title>LED binning: colour and brightness variation between orders</image:title>
      <image:caption>LED binning: colour and brightness variation between orders</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/engraved-text-lighting-on-metal-low-angle-grazing-light-vs-dome</loc>
    <lastmod>2026-11-09T10:05:01-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-79e11defc16781acea9dbf0f.jpg?v=1794236701</image:loc>
      <image:title>Engraved text lighting on metal: low-angle grazing light vs dome</image:title>
      <image:caption>Engraved text lighting on metal: low-angle grazing light vs dome</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/move-a-robot-relative-to-a-vision-detected-part-frame</loc>
    <lastmod>2026-11-09T13:08:46-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-91eedc378743a7565e343e50.jpg?v=1794236772</image:loc>
      <image:title>Move a robot relative to a vision-detected part frame</image:title>
      <image:caption>Move a robot relative to a vision-detected part frame</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/industrial-cameras-in-medical-equipment-who-owns-compliance</loc>
    <lastmod>2026-11-09T10:11:11-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-efa0c8d434c69b4b612ee8e3.jpg?v=1794237071</image:loc>
      <image:title>Industrial cameras in medical equipment: who owns compliance</image:title>
      <image:caption>Industrial cameras in medical equipment: who owns compliance</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/packet-missing-from-image-nic-tuning-in-the-right-order</loc>
    <lastmod>2026-11-09T21:54:05-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-a8ac5dec316d1c28816de360.jpg?v=1794237148</image:loc>
      <image:title>Packet missing from image: NIC tuning in the right order</image:title>
      <image:caption>Packet missing from image: NIC tuning in the right order</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/cmake-not-found-in-pip-wheel-build-fix-the-duplicate-cmake-install</loc>
    <lastmod>2026-11-09T19:28:39-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-62950309e4c02103170452d4.jpg?v=1794237225</image:loc>
      <image:title>CMake not found in pip wheel build: fix the duplicate cmake install</image:title>
      <image:caption>CMake not found in pip wheel build: fix the duplicate cmake install</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/read-a-code-once-stop-after-the-first-good-read</loc>
    <lastmod>2026-11-09T10:14:54-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-5443a068dd694414ac2987cc.jpg?v=1794237293</image:loc>
      <image:title>Read a code once: stop after the first good read</image:title>
      <image:caption>Read a code once: stop after the first good read</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/read-display-values-from-video-frames-every-second</loc>
    <lastmod>2026-11-09T14:29:11-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-f4e60aa95cb2dab990349a82.jpg?v=1794237359</image:loc>
      <image:title>Read display values from video frames every second</image:title>
      <image:caption>Read display values from video frames every second</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/laplacian-and-smoothing-convolution-kernel-crash-causes-and-fix</loc>
    <lastmod>2026-11-09T10:20:00-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-e5af1fe972ab8d9e9b093448.jpg?v=1794237600</image:loc>
      <image:title>Laplacian and smoothing convolution kernel crash: causes and fix</image:title>
      <image:caption>Laplacian and smoothing convolution kernel crash: causes and fix</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/mipi-camera-probe-failed-error-121-read-the-dmesg-trail</loc>
    <lastmod>2026-11-09T10:21:09-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-54cfdfe62d8057c556d2d586.jpg?v=1794237669</image:loc>
      <image:title>MIPI camera probe failed error -121: read the dmesg trail</image:title>
      <image:caption>MIPI camera probe failed error -121: read the dmesg trail</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/deploy-custom-code-to-a-smart-camera-match-sdk-and-firmware-versions</loc>
    <lastmod>2026-11-09T11:48:08-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-253a3d35756734827ed73954.jpg?v=1794237739</image:loc>
      <image:title>Deploy custom code to a smart camera: match SDK and firmware versions</image:title>
      <image:caption>Deploy custom code to a smart camera: match SDK and firmware versions</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/cv2-cuda-modules-missing-in-python-check-the-installed-build</loc>
    <lastmod>2026-11-09T10:23:23-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-e716f01ce24abc0254a50279.jpg?v=1794237803</image:loc>
      <image:title>cv2.cuda modules missing in Python: check the installed build</image:title>
      <image:caption>cv2.cuda modules missing in Python: check the installed build</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/most-reliable-camera-interface-gige-usb3-camera-link-or-coaxpress</loc>
    <lastmod>2026-11-09T10:25:11-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-03bb07914ef4161ece2d1a32.jpg?v=1794237911</image:loc>
      <image:title>Most reliable camera interface: GigE, USB3, Camera Link or CoaXPress</image:title>
      <image:caption>Most reliable camera interface: GigE, USB3, Camera Link or CoaXPress</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/remove-linear-background-features-with-compactness-blob-filtering</loc>
    <lastmod>2026-11-09T10:30:11-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-a01114b921e07d5cb05f5dce.jpg?v=1794238211</image:loc>
      <image:title>Remove linear background features with compactness blob filtering</image:title>
      <image:caption>Remove linear background features with compactness blob filtering</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/camera-orientation-precision-on-small-parts-and-the-10-field-rule</loc>
    <lastmod>2026-11-09T15:51:24-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-2f15e89ed05b814ad3ccc52c.jpg?v=1794238279</image:loc>
      <image:title>Camera orientation precision on small parts and the 10% field rule</image:title>
      <image:caption>Camera orientation precision on small parts and the 10% field rule</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/camera-core-temperature-vs-housing-temperature-estimate-and-monitor</loc>
    <lastmod>2026-11-09T20:48:16-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-2456bc64bf531d5a7f9c1cee.jpg?v=1794238347</image:loc>
      <image:title>Camera core temperature vs housing temperature: estimate and monitor</image:title>
      <image:caption>Camera core temperature vs housing temperature: estimate and monitor</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/multiple-cameras-share-one-strobe-let-one-camera-fire-it</loc>
    <lastmod>2026-11-09T10:33:36-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-2bdf505db882481cd6a2e74a.jpg?v=1794238416</image:loc>
      <image:title>Multiple cameras share one strobe: let one camera fire it</image:title>
      <image:caption>Multiple cameras share one strobe: let one camera fire it</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/vision-systems-that-cannot-fail-design-for-zero-service-visits</loc>
    <lastmod>2026-11-09T11:26:18-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-0097e173470af2981acfd4be.jpg?v=1794238483</image:loc>
      <image:title>Vision systems that cannot fail: design for zero service visits</image:title>
      <image:caption>Vision systems that cannot fail: design for zero service visits</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/changing-pixel-format-halves-your-frame-rate-check-linked-attributes</loc>
    <lastmod>2026-11-09T13:23:21-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-09d478ac6aec93f8d5bd544b.jpg?v=1794238737</image:loc>
      <image:title>Changing pixel format halves your frame rate: check linked attributes</image:title>
      <image:caption>Changing pixel format halves your frame rate: check linked attributes</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/opencv-stuck-at-cap-read-frame-on-a-depth-camera-fix-the-middleware</loc>
    <lastmod>2026-11-09T10:40:06-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-3dcdcdbc604a9183cc685163.jpg?v=1794238806</image:loc>
      <image:title>OpenCV stuck at cap read frame on a depth camera: fix the middleware</image:title>
      <image:caption>OpenCV stuck at cap read frame on a depth camera: fix the middleware</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/how-camera-field-of-view-changes-with-working-distance</loc>
    <lastmod>2026-11-09T20:07:17-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-de12a494abe15da1f59f4519.jpg?v=1794238872</image:loc>
      <image:title>How camera field of view changes with working distance</image:title>
      <image:caption>How camera field of view changes with working distance</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/ros-multi-camera-topic-names-give-each-wrapper-a-namespace</loc>
    <lastmod>2026-11-09T10:42:22-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-e0ee4baabf401762dc22795d.jpg?v=1794238942</image:loc>
      <image:title>ROS multi camera topic names: give each wrapper a namespace</image:title>
      <image:caption>ROS multi camera topic names: give each wrapper a namespace</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/store-a-scanned-barcode-value-in-val3-and-trigger-three-applications</loc>
    <lastmod>2026-11-09T13:15:25-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-1843b123436804579bc56832.jpg?v=1794239010</image:loc>
      <image:title>Store a scanned barcode value in VAL3 and trigger three applications</image:title>
      <image:caption>Store a scanned barcode value in VAL3 and trigger three applications</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/barcode-scanner-tab-then-enter-suffixes-alternate-scan-actions</loc>
    <lastmod>2026-11-09T11:37:39-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-77ccc2b0359606b19ae8e4fb.jpg?v=1794239289</image:loc>
      <image:title>Barcode scanner tab then enter suffixes: alternate scan actions</image:title>
      <image:caption>Barcode scanner tab then enter suffixes: alternate scan actions</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/robot-repositioned-between-setups-teach-one-table-feature</loc>
    <lastmod>2026-11-09T10:49:18-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-c5f11c88e1a365d243cca43e.jpg?v=1794239358</image:loc>
      <image:title>Robot repositioned between setups: teach one table feature</image:title>
      <image:caption>Robot repositioned between setups: teach one table feature</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/libcamera-commands-not-found-after-an-os-update-what-changed</loc>
    <lastmod>2026-11-09T10:50:31-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-a8e203bf0849909c0e5c13fa.jpg?v=1794239431</image:loc>
      <image:title>libcamera commands not found after an OS update: what changed</image:title>
      <image:caption>libcamera commands not found after an OS update: what changed</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/camera-connected-to-a-vision-controller-will-not-open-from-your-pc</loc>
    <lastmod>2026-11-09T17:56:07-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-762309cefb74031455d8825e.jpg?v=1794239497</image:loc>
      <image:title>Camera connected to a vision controller will not open from your PC</image:title>
      <image:caption>Camera connected to a vision controller will not open from your PC</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/how-to-clean-a-sapphire-inspection-window-without-scratching-it</loc>
    <lastmod>2026-11-09T15:52:42-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-b908fd9d8645442a7cbc5459.jpg?v=1794239569</image:loc>
      <image:title>How to clean a sapphire inspection window without scratching it</image:title>
      <image:caption>How to clean a sapphire inspection window without scratching it</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/faster-1d-barcode-detection-on-embedded-smart-cameras</loc>
    <lastmod>2026-11-09T10:57:03-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-2077efe563dbed955a73b81d.jpg?v=1794239823</image:loc>
      <image:title>Faster 1D barcode detection on embedded smart cameras</image:title>
      <image:caption>Faster 1D barcode detection on embedded smart cameras</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/usb-camera-timeout-at-high-resolution-fix-bandwidth-and-pacing</loc>
    <lastmod>2026-11-09T17:18:17-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-36d38cf428af6482700a10ec.jpg?v=1794239888</image:loc>
      <image:title>USB camera timeout at high resolution: fix bandwidth and pacing</image:title>
      <image:caption>USB camera timeout at high resolution: fix bandwidth and pacing</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/smart-camera-to-robot-tcp-data-exchange-that-parses-results</loc>
    <lastmod>2026-11-09T14:29:11-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-381186728e1c874f2c444982.jpg?v=1794239963</image:loc>
      <image:title>Smart camera to robot TCP data exchange that parses results</image:title>
      <image:caption>Smart camera to robot TCP data exchange that parses results</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/choosing-a-lightweight-cnn-backbone-for-embedded-vision-inference</loc>
    <lastmod>2026-11-09T17:56:07-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-01cdfb5c982fc702540da474.jpg?v=1794240044</image:loc>
      <image:title>Choosing a lightweight CNN backbone for embedded vision inference</image:title>
      <image:caption>Choosing a lightweight CNN backbone for embedded vision inference</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/vision-pick-coordinates-on-a-tilted-plane-build-your-own-transform</loc>
    <lastmod>2026-11-09T11:01:54-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-cb53ec9a85311c138b2992f7.jpg?v=1794240114</image:loc>
      <image:title>Vision pick coordinates on a tilted plane: build your own transform</image:title>
      <image:caption>Vision pick coordinates on a tilted plane: build your own transform</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/stereo-depth-node-won-t-start-verify-gpu-runtime-libraries-first</loc>
    <lastmod>2026-11-09T11:06:03-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-0922ff2d70e69bdfb96f1bde.jpg?v=1794240363</image:loc>
      <image:title>Stereo depth node won&apos;t start: verify GPU runtime libraries first</image:title>
      <image:caption>Stereo depth node won&apos;t start: verify GPU runtime libraries first</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/can-vision-locate-this-part-a-feasibility-checklist-before-you-teach</loc>
    <lastmod>2026-11-09T14:27:59-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-9dac44615d331738c094184b.jpg?v=1794240476</image:loc>
      <image:title>Can vision locate this part? A feasibility checklist before you teach</image:title>
      <image:caption>Can vision locate this part? A feasibility checklist before you teach</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/photometry-calibration-of-focus-exposure-and-gain-offline-vs-live</loc>
    <lastmod>2026-11-09T11:09:04-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-988ada174abd6f4f4fd3f8a1.jpg?v=1794240543</image:loc>
      <image:title>Photometry calibration of focus, exposure and gain: offline vs live</image:title>
      <image:caption>Photometry calibration of focus, exposure and gain: offline vs live</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/multi-camera-conveyor-tracking-one-merged-results-table</loc>
    <lastmod>2026-11-09T17:56:08-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-15afdbbb8b46a01ef26846bf.jpg?v=1794240621</image:loc>
      <image:title>Multi-camera conveyor tracking: one merged results table</image:title>
      <image:caption>Multi-camera conveyor tracking: one merged results table</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/stream-a-mipi-camera-over-rtsp-with-gstreamer-fix-preroll-failures</loc>
    <lastmod>2026-11-09T12:21:26-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-f1067ea5485e2bf3a329a0b0.jpg?v=1794240692</image:loc>
      <image:title>Stream a MIPI camera over RTSP with GStreamer: fix preroll failures</image:title>
      <image:caption>Stream a MIPI camera over RTSP with GStreamer: fix preroll failures</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/adding-ir-light-to-a-depth-camera-when-it-helps-and-when-it-hurts</loc>
    <lastmod>2026-11-10T00:18:07-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-f50649e9443f0506c477fd47.jpg?v=1794240965</image:loc>
      <image:title>Adding IR light to a depth camera: when it helps and when it hurts</image:title>
      <image:caption>Adding IR light to a depth camera: when it helps and when it hurts</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/check-part-presence-with-a-fixed-3d-roi-over-each-hole</loc>
    <lastmod>2026-11-09T11:17:13-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-84e6ab8726f8f157ac7185bb.jpg?v=1794241033</image:loc>
      <image:title>Check part presence with a fixed 3D ROI over each hole</image:title>
      <image:caption>Check part presence with a fixed 3D ROI over each hole</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/csi-camera-short-frame-errors-match-the-mode-to-the-sensor-output</loc>
    <lastmod>2026-11-09T16:42:06-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-aae306a5b98541fe8965903e.jpg?v=1794241107</image:loc>
      <image:title>CSI camera short frame errors: match the mode to the sensor output</image:title>
      <image:caption>CSI camera short frame errors: match the mode to the sensor output</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/uninstall-vision-system-software-from-a-robot-controller</loc>
    <lastmod>2026-11-09T13:51:23-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-a034eb5251a90f4881ba1a9c.jpg?v=1794241173</image:loc>
      <image:title>Uninstall vision system software from a robot controller</image:title>
      <image:caption>Uninstall vision system software from a robot controller</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/rtsp-decode-cpu-overload-offload-decode-and-conversion-to-the-gpu</loc>
    <lastmod>2026-11-09T21:02:03-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-4847613ddfa9636579a46f1f.jpg?v=1794241242</image:loc>
      <image:title>RTSP decode CPU overload: offload decode and conversion to the GPU</image:title>
      <image:caption>RTSP decode CPU overload: offload decode and conversion to the GPU</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/noisy-stereo-point-cloud-fixes-thresholds-sensing-mode-depth-range</loc>
    <lastmod>2026-11-09T19:36:15-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-b2de85148f649ee126e78128.jpg?v=1794241505</image:loc>
      <image:title>Noisy stereo point cloud fixes: thresholds, sensing mode, depth range</image:title>
      <image:caption>Noisy stereo point cloud fixes: thresholds, sensing mode, depth range</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/wrist-camera-and-gripper-wiring-fix-red-led-power-faults</loc>
    <lastmod>2026-11-09T11:26:15-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-5a4bfc1e613aabaabc19649d.jpg?v=1794241575</image:loc>
      <image:title>Wrist camera and gripper wiring: fix red LED power faults</image:title>
      <image:caption>Wrist camera and gripper wiring: fix red LED power faults</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/eeprom-calibration-write-failed-fix-your-stereo-camera-board-first</loc>
    <lastmod>2026-11-09T14:46:12-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-61ead9296019a56ea82ca403.jpg?v=1794241650</image:loc>
      <image:title>EEPROM calibration write failed: fix your stereo camera board first</image:title>
      <image:caption>EEPROM calibration write failed: fix your stereo camera board first</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/stream-smart-camera-live-video-and-metrics-to-a-custom-dashboard</loc>
    <lastmod>2026-11-09T12:47:14-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-d7d4c360a5d6e93526da6dbf.jpg?v=1794241722</image:loc>
      <image:title>Stream smart camera live video and metrics to a custom dashboard</image:title>
      <image:caption>Stream smart camera live video and metrics to a custom dashboard</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/switch-vision-jobs-mid-program-without-losing-the-camera-socket</loc>
    <lastmod>2026-11-09T11:29:50-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-9abcd75b62834c38fad22168.jpg?v=1794241790</image:loc>
      <image:title>Switch vision jobs mid program without losing the camera socket</image:title>
      <image:caption>Switch vision jobs mid program without losing the camera socket</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/apply-camera-xy-offsets-in-a-robot-program-with-unit-conversion</loc>
    <lastmod>2026-11-09T14:00:25-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-17df17c55e6d4d127bc4d513.jpg?v=1794242041</image:loc>
      <image:title>Apply camera XY offsets in a robot program with unit conversion</image:title>
      <image:caption>Apply camera XY offsets in a robot program with unit conversion</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/camera-streaming-buffer-count-why-three-frames-beat-one</loc>
    <lastmod>2026-11-09T14:40:36-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-94c8bc6d67db19fce47a90b1.jpg?v=1794242111</image:loc>
      <image:title>Camera streaming buffer count: why three frames beat one</image:title>
      <image:caption>Camera streaming buffer count: why three frames beat one</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/trigger-a-machine-vision-camera-from-a-daq-or-scada-program</loc>
    <lastmod>2026-11-09T23:52:11-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-21b77ec24af96f4b577b3834.jpg?v=1794242186</image:loc>
      <image:title>Trigger a machine vision camera from a DAQ or SCADA program</image:title>
      <image:caption>Trigger a machine vision camera from a DAQ or SCADA program</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/barcode-scanner-appends-to-the-previous-value-fix-it-with-selectall</loc>
    <lastmod>2026-11-09T11:37:39-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-139f0e5bf9c31b6da5273641.jpg?v=1794242259</image:loc>
      <image:title>Barcode scanner appends to the previous value: fix it with selectAll</image:title>
      <image:caption>Barcode scanner appends to the previous value: fix it with selectAll</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/camera-roi-offsets-reset-to-zero-set-width-and-height-first</loc>
    <lastmod>2026-11-09T11:39:01-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-b9754eaadc710ee9312bc734.jpg?v=1794242341</image:loc>
      <image:title>Camera ROI offsets reset to zero: set width and height first</image:title>
      <image:caption>Camera ROI offsets reset to zero: set width and height first</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/automating-manual-visual-inspection-when-one-click-works</loc>
    <lastmod>2026-11-09T13:32:02-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-8247b56a756279c7864a4238.jpg?v=1794242607</image:loc>
      <image:title>Automating manual visual inspection: when one click works</image:title>
      <image:caption>Automating manual visual inspection: when one click works</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/encoder-trigger-distance-for-belt-tracking-set-spacing-without-faults</loc>
    <lastmod>2026-11-09T11:44:37-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-fa809a687ad8b4479a23980f.jpg?v=1794242677</image:loc>
      <image:title>Encoder trigger distance for belt tracking: set spacing without faults</image:title>
      <image:caption>Encoder trigger distance for belt tracking: set spacing without faults</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/vision-locate-for-robot-part-picking-set-it-up-to-survive-rotation</loc>
    <lastmod>2026-11-09T11:55:53-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-7d73cbdfdaa4d047475000c4.jpg?v=1794242750</image:loc>
      <image:title>Vision locate for robot part picking: set it up to survive rotation</image:title>
      <image:caption>Vision locate for robot part picking: set it up to survive rotation</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/camera-field-of-view-at-a-given-mounting-height-how-to-size-it</loc>
    <lastmod>2026-11-09T14:58:45-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-8ad6e3f54fa50628a5f09060.jpg?v=1794242819</image:loc>
      <image:title>Camera field of view at a given mounting height: how to size it</image:title>
      <image:caption>Camera field of view at a given mounting height: how to size it</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/teach-objects-on-an-inclined-work-plane-calibrate-at-part-top-height</loc>
    <lastmod>2026-11-09T14:28:03-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-2a2608e0655538743f8dc930.jpg?v=1794242885</image:loc>
      <image:title>Teach objects on an inclined work plane: calibrate at part-top height</image:title>
      <image:caption>Teach objects on an inclined work plane: calibrate at part-top height</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/auto-start-your-vision-system-at-robot-controller-boot</loc>
    <lastmod>2026-11-09T22:30:07-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-6d3c4dfce47c071b46f65e8c.jpg?v=1794243127</image:loc>
      <image:title>Auto-start your vision system at robot controller boot</image:title>
      <image:caption>Auto-start your vision system at robot controller boot</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/parametric-teach-for-geometric-parts-faster-vision-locate</loc>
    <lastmod>2026-11-09T14:37:07-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-f2df8fe93007968279c00b56.jpg?v=1794243202</image:loc>
      <image:title>Parametric teach for geometric parts: faster vision locate</image:title>
      <image:caption>Parametric teach for geometric parts: faster vision locate</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/udp-broadcast-discovery-fails-with-multiple-ipv4-addresses</loc>
    <lastmod>2026-11-09T11:54:28-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-2ae6c5147bcf9976bc4052e6.jpg?v=1794243268</image:loc>
      <image:title>UDP broadcast discovery fails with multiple IPv4 addresses</image:title>
      <image:caption>UDP broadcast discovery fails with multiple IPv4 addresses</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/dynamic-roi-adjustment-to-part-position-blob-anchor-method</loc>
    <lastmod>2026-11-09T18:24:10-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-b4af31acd78d76ce5d562068.jpg?v=1794243343</image:loc>
      <image:title>Dynamic ROI adjustment to part position: blob anchor method</image:title>
      <image:caption>Dynamic ROI adjustment to part position: blob anchor method</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/12-bit-data-in-a-16-bit-v4l2-frame-why-values-top-out-near-65520</loc>
    <lastmod>2026-11-09T11:56:59-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-df75108f5dc00305c4a33690.jpg?v=1794243419</image:loc>
      <image:title>12-bit data in a 16-bit V4L2 frame: why values top out near 65520</image:title>
      <image:caption>12-bit data in a 16-bit V4L2 frame: why values top out near 65520</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/ros-2-cameracalibrator-remap-warnings-and-docker-mount-fix</loc>
    <lastmod>2026-11-09T12:01:15-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-957434c9c966c9db479df0d2.jpg?v=1794243675</image:loc>
      <image:title>ROS 2 cameracalibrator remap warnings and Docker mount fix</image:title>
      <image:caption>ROS 2 cameracalibrator remap warnings and Docker mount fix</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/scan-a-barcode-to-select-a-recipe-on-your-hmi</loc>
    <lastmod>2026-11-09T12:02:29-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-581aa0eb33b69ff17a2b6d5f.jpg?v=1794243749</image:loc>
      <image:title>Scan a barcode to select a recipe on your HMI</image:title>
      <image:caption>Scan a barcode to select a recipe on your HMI</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/cs-mount-vs-s-mount-camera-variant-choose-at-order-time</loc>
    <lastmod>2026-11-09T12:03:39-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-acecc84fd19c46d6f4c4237b.jpg?v=1794243819</image:loc>
      <image:title>CS mount vs S-mount camera variant: choose at order time</image:title>
      <image:caption>CS mount vs S-mount camera variant: choose at order time</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/print-a-barcode-label-from-a-plc-without-a-pc</loc>
    <lastmod>2026-11-09T12:04:50-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-317517aae515e53cc8145c89.jpg?v=1794243890</image:loc>
      <image:title>Print a barcode label from a PLC without a PC</image:title>
      <image:caption>Print a barcode label from a PLC without a PC</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/trim-a-substring-from-a-barcode-scan-string-in-your-program</loc>
    <lastmod>2026-11-09T12:05:59-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-78ccb3964d53ff487b8b04a0.jpg?v=1794243959</image:loc>
      <image:title>Trim a substring from a barcode scan string in your program</image:title>
      <image:caption>Trim a substring from a barcode scan string in your program</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/multiple-vision-cameras-on-modbus-tcp-one-plc-cpu-one-poll-loop</loc>
    <lastmod>2026-11-09T12:10:06-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-8e04ac07ad3f1f4ed0b59984.jpg?v=1794244206</image:loc>
      <image:title>Multiple vision cameras on Modbus TCP: one PLC CPU, one poll loop</image:title>
      <image:caption>Multiple vision cameras on Modbus TCP: one PLC CPU, one poll loop</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/calibration-pose-unreachable-scale-the-grid-to-robot-reach</loc>
    <lastmod>2026-11-09T12:11:20-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-c24087ab056dc2d908727612.jpg?v=1794244280</image:loc>
      <image:title>Calibration pose unreachable: scale the grid to robot reach</image:title>
      <image:caption>Calibration pose unreachable: scale the grid to robot reach</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/save-data-before-a-scene-switch-sequence-it-with-an-i-o-handshake</loc>
    <lastmod>2026-11-09T12:28:16-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-63197acc4497ef31b6063565.jpg?v=1794244351</image:loc>
      <image:title>Save data before a scene switch: sequence it with an I/O handshake</image:title>
      <image:caption>Save data before a scene switch: sequence it with an I/O handshake</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/camera-sdk-callback-wrapper-dll-for-labview-bridge-events-with-c</loc>
    <lastmod>2026-11-10T00:12:23-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-12b61efe00bdfb43a2658114.jpg?v=1794244419</image:loc>
      <image:title>Camera SDK callback wrapper DLL for LabVIEW: bridge events with C</image:title>
      <image:caption>Camera SDK callback wrapper DLL for LabVIEW: bridge events with C</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/smart-camera-results-to-an-rt-controller-how-to-split-the-work</loc>
    <lastmod>2026-11-09T14:38:16-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-78f8f62a60e6d0858d28a3a3.jpg?v=1794244493</image:loc>
      <image:title>Smart camera results to an RT controller: how to split the work</image:title>
      <image:caption>Smart camera results to an RT controller: how to split the work</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/why-vision-guided-robot-offset-correction-shifts-x-and-y</loc>
    <lastmod>2026-11-09T12:19:04-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-4a2d45e73e50dbbf5b414d0f.jpg?v=1794244744</image:loc>
      <image:title>Why vision guided robot offset correction shifts x and y</image:title>
      <image:caption>Why vision guided robot offset correction shifts x and y</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/camera-user-flash-store-calibration-data-on-gige-and-usb-cameras</loc>
    <lastmod>2026-11-09T12:20:15-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-e51cdf7f18f68a68a5ae4f57.jpg?v=1794244815</image:loc>
      <image:title>Camera user flash: store calibration data on GigE and USB cameras</image:title>
      <image:caption>Camera user flash: store calibration data on GigE and USB cameras</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/mipi-csi-vs-usb3-for-a-raw-bayer-camera-stream</loc>
    <lastmod>2026-11-09T12:21:22-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-52538485b110e8ae55fd286c.jpg?v=1794244882</image:loc>
      <image:title>MIPI CSI vs USB3 for a raw Bayer camera stream</image:title>
      <image:caption>MIPI CSI vs USB3 for a raw Bayer camera stream</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/wrist-camera-full-resolution-image-access-from-an-external-pc</loc>
    <lastmod>2026-11-09T12:22:41-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-c50de80f2d427c2e9a0e2a5c.jpg?v=1794244961</image:loc>
      <image:title>Wrist camera full resolution image access from an external PC</image:title>
      <image:caption>Wrist camera full resolution image access from an external PC</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/barcode-scanner-property-change-script-fix-the-payload-and-navigate</loc>
    <lastmod>2026-11-09T12:23:50-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-d600f36cbed44345900f8950.jpg?v=1794245030</image:loc>
      <image:title>Barcode scanner property change script: fix the payload and navigate</image:title>
      <image:caption>Barcode scanner property change script: fix the payload and navigate</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/receiving-vision-data-in-rapid-over-tcp-sockets-how-it-works</loc>
    <lastmod>2026-11-09T12:28:14-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-4a3ca19fb11603f7b294f5ca.jpg?v=1794245294</image:loc>
      <image:title>Receiving vision data in RAPID over TCP sockets: how it works</image:title>
      <image:caption>Receiving vision data in RAPID over TCP sockets: how it works</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/count-multiple-parts-and-find-the-cluster-centroid-in-one-image</loc>
    <lastmod>2026-11-09T12:29:29-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-970d91e899697b4ab93900dc.jpg?v=1794245369</image:loc>
      <image:title>Count multiple parts and find the cluster centroid in one image</image:title>
      <image:caption>Count multiple parts and find the cluster centroid in one image</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/camera-link-camera-file-for-a-sensor-with-no-vendor-file-build-it</loc>
    <lastmod>2026-11-09T12:30:41-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-f6fce2ad6820ecea9c48f960.jpg?v=1794245441</image:loc>
      <image:title>Camera Link camera file for a sensor with no vendor file: build it</image:title>
      <image:caption>Camera Link camera file for a sensor with no vendor file: build it</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/read-a-serial-barcode-scanner-over-tcp-to-pc-software</loc>
    <lastmod>2026-11-09T12:31:50-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-10f8875ec952b43c55b268ea.jpg?v=1794245509</image:loc>
      <image:title>Read a serial barcode scanner over TCP to PC software</image:title>
      <image:caption>Read a serial barcode scanner over TCP to PC software</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/how-to-decode-an-intelligent-mail-barcode-from-an-image</loc>
    <lastmod>2026-11-09T12:33:04-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-afef2788b9c61b9bf7dfb98a.jpg?v=1794245584</image:loc>
      <image:title>How to decode an intelligent mail barcode from an image</image:title>
      <image:caption>How to decode an intelligent mail barcode from an image</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/trigger-a-vision-inspection-over-rs-232-from-a-plc</loc>
    <lastmod>2026-11-09T12:37:09-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-421939a256e188ff548759ee.jpg?v=1794245829</image:loc>
      <image:title>Trigger a vision inspection over RS-232 from a PLC</image:title>
      <image:caption>Trigger a vision inspection over RS-232 from a PLC</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/ocr-roi-follows-a-moving-part-anchor-it-to-a-pattern-match</loc>
    <lastmod>2026-11-09T14:00:27-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-c25e09ee32f32fde4e5e4f89.jpg?v=1794245901</image:loc>
      <image:title>OCR ROI follows a moving part: anchor it to a pattern match</image:title>
      <image:caption>OCR ROI follows a moving part: anchor it to a pattern match</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/radiometric-jpg-thermal-images-saving-16-bit-temperature-data</loc>
    <lastmod>2026-11-09T14:39:27-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-5683baee4ee01362a85aa065.jpg?v=1794245970</image:loc>
      <image:title>Radiometric jpg thermal images: saving 16-bit temperature data</image:title>
      <image:caption>Radiometric jpg thermal images: saving 16-bit temperature data</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/usb-camera-returns-black-images-on-most-grabs-snap-vs-grab-modes</loc>
    <lastmod>2026-11-09T13:42:20-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-91f0b8103e0a98ae6779ce83.jpg?v=1794246041</image:loc>
      <image:title>USB camera returns black images on most grabs: snap vs grab modes</image:title>
      <image:caption>USB camera returns black images on most grabs: snap vs grab modes</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/tracking-a-point-with-a-wrist-camera-and-opencv</loc>
    <lastmod>2026-11-09T12:41:52-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-428b3df752d14f9c18dc1235.jpg?v=1794246112</image:loc>
      <image:title>Tracking a point with a wrist camera and OpenCV</image:title>
      <image:caption>Tracking a point with a wrist camera and OpenCV</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/trigger-a-usb-camera-capture-from-a-robot-controller-over-a-socket</loc>
    <lastmod>2026-11-09T19:27:27-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-39a018a45c840ff80ab866f7.jpg?v=1794246363</image:loc>
      <image:title>Trigger a USB camera capture from a robot controller over a socket</image:title>
      <image:caption>Trigger a USB camera capture from a robot controller over a socket</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/smart-camera-socket-handoff-to-a-robot-straight-down-pick</loc>
    <lastmod>2026-11-09T12:47:10-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-b645e5da1aa26ede4a616d5b.jpg?v=1794246430</image:loc>
      <image:title>Smart camera socket handoff to a robot: straight-down pick</image:title>
      <image:caption>Smart camera socket handoff to a robot: straight-down pick</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/camera-image-mirrored-or-blank-lines-flip-settings-and-tap-reversal</loc>
    <lastmod>2026-11-09T12:48:34-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-57d8d3590a61ca9c937a0768.jpg?v=1794246514</image:loc>
      <image:title>Camera image mirrored or blank lines: flip settings and tap reversal</image:title>
      <image:caption>Camera image mirrored or blank lines: flip settings and tap reversal</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/camera-module-low-light-imaging-with-ir-illumination</loc>
    <lastmod>2026-11-09T12:49:43-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-d079d1aaaa881ec3aa18bc12.jpg?v=1794246583</image:loc>
      <image:title>Camera module low light imaging with IR illumination</image:title>
      <image:caption>Camera module low light imaging with IR illumination</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/camera-module-raw-image-capture-check-before-you-code</loc>
    <lastmod>2026-11-09T16:38:13-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-056c74307fd12e4d3f1c6d64.jpg?v=1794246662</image:loc>
      <image:title>Camera module raw image capture: check before you code</image:title>
      <image:caption>Camera module raw image capture: check before you code</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/accumulate-multiple-light-stripes-in-one-image-with-a-long-exposure</loc>
    <lastmod>2026-11-09T12:55:05-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-3c517377ca4b64d0dbe43cd7.jpg?v=1794246905</image:loc>
      <image:title>Accumulate multiple light stripes in one image with a long exposure</image:title>
      <image:caption>Accumulate multiple light stripes in one image with a long exposure</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/speed-up-vision-acquisition-time-by-cutting-processing-load</loc>
    <lastmod>2026-11-09T12:56:29-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-df0ccc3e3972b0ffae29fd90.jpg?v=1794246989</image:loc>
      <image:title>Speed up vision acquisition time by cutting processing load</image:title>
      <image:caption>Speed up vision acquisition time by cutting processing load</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/vision-detection-score-variable-log-it-in-the-robot-program</loc>
    <lastmod>2026-11-09T12:57:36-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-48a453f154594fef3b82d22f.jpg?v=1794247056</image:loc>
      <image:title>Vision detection score variable: log it in the robot program</image:title>
      <image:caption>Vision detection score variable: log it in the robot program</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/integrate-a-thermal-camera-into-a-daq-application-via-its-sdk</loc>
    <lastmod>2026-11-09T14:39:26-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-48b3ddccaf82833a7de0ebfb.jpg?v=1794247125</image:loc>
      <image:title>Integrate a thermal camera into a DAQ application via its SDK</image:title>
      <image:caption>Integrate a thermal camera into a DAQ application via its SDK</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/return-an-image-from-a-c-dll-to-labview-memory-and-types</loc>
    <lastmod>2026-11-09T12:59:51-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-12a4a1b333bbc7df1a079b98.jpg?v=1794247191</image:loc>
      <image:title>Return an image from a C++ DLL to LabVIEW: memory and types</image:title>
      <image:caption>Return an image from a C++ DLL to LabVIEW: memory and types</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/handheld-wireless-barcode-reader-to-plc-over-tcp</loc>
    <lastmod>2026-11-09T13:04:08-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-a82d4504def5d12f9bd1af37.jpg?v=1794247448</image:loc>
      <image:title>Handheld wireless barcode reader to PLC over TCP</image:title>
      <image:caption>Handheld wireless barcode reader to PLC over TCP</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/monochrome-vs-color-camera-for-machine-vision-how-to-choose</loc>
    <lastmod>2026-11-09T13:05:16-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-81bd2f69d4159e3f1f6d159d.jpg?v=1794247516</image:loc>
      <image:title>Monochrome vs color camera for machine vision: how to choose</image:title>
      <image:caption>Monochrome vs color camera for machine vision: how to choose</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/multi-angle-sequential-lighting-to-reveal-scratches-on-glossy-parts</loc>
    <lastmod>2026-11-09T13:06:29-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-e564072b6231a06c15ce5e90.jpg?v=1794247589</image:loc>
      <image:title>Multi-angle sequential lighting to reveal scratches on glossy parts</image:title>
      <image:caption>Multi-angle sequential lighting to reveal scratches on glossy parts</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/crossed-polarizers-for-specular-glare-suppression-in-machine-vision</loc>
    <lastmod>2026-11-09T13:07:39-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-58c36268e7f3efce8ca05675.jpg?v=1794247659</image:loc>
      <image:title>Crossed polarizers for specular glare suppression in machine vision</image:title>
      <image:caption>Crossed polarizers for specular glare suppression in machine vision</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/check-minimum-clearance-between-parts-before-a-robot-pick</loc>
    <lastmod>2026-11-09T14:21:30-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-872be360816f77af9043d41d.jpg?v=1794247725</image:loc>
      <image:title>Check minimum clearance between parts before a robot pick</image:title>
      <image:caption>Check minimum clearance between parts before a robot pick</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/trigger-a-code-reader-from-a-robot-program-and-confirm-the-scan</loc>
    <lastmod>2026-11-09T13:13:01-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-c6eeccfa92b848896cbced28.jpg?v=1794247981</image:loc>
      <image:title>Trigger a code reader from a robot program and confirm the scan</image:title>
      <image:caption>Trigger a code reader from a robot program and confirm the scan</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/call-a-subvi-by-reference-in-your-custom-ui-without-hangs</loc>
    <lastmod>2026-11-09T13:14:11-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-fbfef9d4309ca15c80033ff8.jpg?v=1794248051</image:loc>
      <image:title>Call a subVI by reference in your custom UI without hangs</image:title>
      <image:caption>Call a subVI by reference in your custom UI without hangs</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/plc-usb-port-and-barcode-scanners-why-serial-still-wins</loc>
    <lastmod>2026-11-09T13:15:23-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-7621ecc002332afcdc6af9bd.jpg?v=1794248123</image:loc>
      <image:title>PLC USB port and barcode scanners: why serial still wins</image:title>
      <image:caption>PLC USB port and barcode scanners: why serial still wins</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/can-a-scan-engine-stream-video-and-decode-barcodes-at-the-same-time</loc>
    <lastmod>2026-11-09T13:16:34-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-403557cadedd403fc3b9d627.jpg?v=1794248194</image:loc>
      <image:title>Can a scan engine stream video and decode barcodes at the same time?</image:title>
      <image:caption>Can a scan engine stream video and decode barcodes at the same time?</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/mobile-camera-orientation-fix-barcode-decoding-at-any-tablet-angle</loc>
    <lastmod>2026-11-09T13:17:42-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-32f6b9fcbebbe4f9df6b4fa6.jpg?v=1794248262</image:loc>
      <image:title>Mobile camera orientation: fix barcode decoding at any tablet angle</image:title>
      <image:caption>Mobile camera orientation: fix barcode decoding at any tablet angle</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/vision-sdk-undefined-reference-fix-a-compiler-mismatch-at-link-time</loc>
    <lastmod>2026-11-09T21:02:03-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-82208658700b904f3409fff5.jpg?v=1794248524</image:loc>
      <image:title>Vision SDK undefined reference: fix a compiler mismatch at link time</image:title>
      <image:caption>Vision SDK undefined reference: fix a compiler mismatch at link time</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/zero-copy-image-buffer-access-on-gige-why-the-pointer-trick-fails</loc>
    <lastmod>2026-11-09T13:23:19-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-331a6acf14a8882851167fdd.jpg?v=1794248599</image:loc>
      <image:title>Zero copy image buffer access on GigE: why the pointer trick fails</image:title>
      <image:caption>Zero copy image buffer access on GigE: why the pointer trick fails</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/opencv-videocapture-0-throws-unknown-exception-fix-the-java-setup</loc>
    <lastmod>2026-11-09T13:24:29-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-643da9df12e16d33c5a8a3de.jpg?v=1794248669</image:loc>
      <image:title>OpenCV VideoCapture(0) throws unknown exception: fix the Java setup</image:title>
      <image:caption>OpenCV VideoCapture(0) throws unknown exception: fix the Java setup</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/avi-codec-file-i-o-error-get-frames-from-converted-video</loc>
    <lastmod>2026-11-09T15:46:15-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-7b6eb0b8b200b139be6f6087.jpg?v=1794248743</image:loc>
      <image:title>AVI codec file IO error: get frames from converted video</image:title>
      <image:caption>AVI codec file IO error: get frames from converted video</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/recording-a-compressed-avi-from-a-camera-stream-codec-availability</loc>
    <lastmod>2026-11-09T20:15:22-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-225417a2164c47765b09fc48.jpg?v=1794248809</image:loc>
      <image:title>Recording a compressed AVI from a camera stream: codec availability</image:title>
      <image:caption>Recording a compressed AVI from a camera stream: codec availability</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/when-manual-visual-inspection-beats-automation-an-honest-checklist</loc>
    <lastmod>2026-11-09T14:00:28-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-6a443eb839e17bc67d3e82f4.jpg?v=1794249121</image:loc>
      <image:title>When manual visual inspection beats automation: an honest checklist</image:title>
      <image:caption>When manual visual inspection beats automation: an honest checklist</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/two-views-one-camera-mirror-optics-for-imaging-two-cube-faces</loc>
    <lastmod>2026-11-09T13:33:15-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-40d08888f83df46bc97f67fc.jpg?v=1794249195</image:loc>
      <image:title>Two views, one camera: mirror optics for imaging two cube faces</image:title>
      <image:caption>Two views, one camera: mirror optics for imaging two cube faces</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/depth-camera-point-cloud-flat-in-xy-fix-the-optical-frame</loc>
    <lastmod>2026-11-09T16:47:26-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-0543a6c7dcbeedcf491f95a5.jpg?v=1794249264</image:loc>
      <image:title>Depth camera point cloud flat in XY: fix the optical frame</image:title>
      <image:caption>Depth camera point cloud flat in XY: fix the optical frame</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/v4l2-buffer-timestamp-know-when-a-frame-was-really-captured</loc>
    <lastmod>2026-11-09T13:35:37-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-9b97a74c5e624f31a0892e91.jpg?v=1794249336</image:loc>
      <image:title>v4l2 buffer timestamp: know when a frame was really captured</image:title>
      <image:caption>v4l2 buffer timestamp: know when a frame was really captured</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/trigger-capture-and-save-tcp-ip-camera-images-in-node-red</loc>
    <lastmod>2026-11-09T13:36:44-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-987b65f598c867c608ae3deb.jpg?v=1794249403</image:loc>
      <image:title>Trigger, capture and save TCP/IP camera images in Node-RED</image:title>
      <image:caption>Trigger, capture and save TCP/IP camera images in Node-RED</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/camera-startup-time-to-first-image-under-one-second</loc>
    <lastmod>2026-11-09T16:38:14-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-16fec5edda5ba430fa19de73.jpg?v=1794249664</image:loc>
      <image:title>Camera startup time to first image under one second</image:title>
      <image:caption>Camera startup time to first image under one second</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/uvc-compliant-usb-cameras-on-embedded-linux-skip-the-driver-rebuild</loc>
    <lastmod>2026-11-09T13:42:18-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-0554aa7983b167abb1029b15.jpg?v=1794249738</image:loc>
      <image:title>UVC-compliant USB cameras on embedded Linux: skip the driver rebuild</image:title>
      <image:caption>UVC-compliant USB cameras on embedded Linux: skip the driver rebuild</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/event-camera-tracking-split-events-between-two-mirror-positions</loc>
    <lastmod>2026-11-09T13:43:29-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-ab69d6984a9898a97db10554.jpg?v=1794249809</image:loc>
      <image:title>Event camera tracking: split events between two mirror positions</image:title>
      <image:caption>Event camera tracking: split events between two mirror positions</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/connect-a-depth-camera-to-android-over-usb-otg</loc>
    <lastmod>2026-11-09T23:36:06-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-52743b7871ccbb0d433d6e9a.jpg?v=1794249878</image:loc>
      <image:title>Connect a depth camera to Android over USB OTG</image:title>
      <image:caption>Connect a depth camera to Android over USB OTG</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/wsl2-camera-discovery-fails-mdns-multicast-needs-mirrored-networking</loc>
    <lastmod>2026-11-09T15:25:20-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-ecb9743bea60616e6695cd21.jpg?v=1794249950</image:loc>
      <image:title>WSL2 camera discovery fails: mDNS multicast needs mirrored networking</image:title>
      <image:caption>WSL2 camera discovery fails: mDNS multicast needs mirrored networking</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/part-and-lighting-color-to-maximize-grayscale-contrast</loc>
    <lastmod>2026-11-09T18:40:16-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-39bf78ef65285bbf3af4222c.jpg?v=1794250213</image:loc>
      <image:title>Part and lighting color to maximize grayscale contrast</image:title>
      <image:caption>Part and lighting color to maximize grayscale contrast</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/vision-system-down-error-on-a-robot-controller-fix-the-usb-layout</loc>
    <lastmod>2026-11-09T23:09:25-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-d14b8ae2660d6627851f9219.jpg?v=1794250282</image:loc>
      <image:title>Vision system down error on a robot controller: fix the USB layout</image:title>
      <image:caption>Vision system down error on a robot controller: fix the USB layout</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/wrist-camera-locate-empty-tray-slot-teach-the-cavity-as-a-part</loc>
    <lastmod>2026-11-09T14:28:04-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-4cb13a762d7c36402b1f355d.jpg?v=1794250352</image:loc>
      <image:title>Wrist camera locate empty tray slot: teach the cavity as a part</image:title>
      <image:caption>Wrist camera locate empty tray slot: teach the cavity as a part</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/export-a-structured-point-cloud-as-xyz-and-png-from-one-capture</loc>
    <lastmod>2026-11-09T13:53:51-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-f01e5b9673e2b995a0c69f11.jpg?v=1794250431</image:loc>
      <image:title>Export a structured point cloud as xyz and PNG from one capture</image:title>
      <image:caption>Export a structured point cloud as xyz and PNG from one capture</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/monocular-vslam-error-fix-the-loop-closure-intrinsics-type</loc>
    <lastmod>2026-11-09T13:55:00-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-1b829a673fd93c15ae9c87fa.jpg?v=1794250500</image:loc>
      <image:title>Monocular vSLAM error: fix the loop closure intrinsics type</image:title>
      <image:caption>Monocular vSLAM error: fix the loop closure intrinsics type</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/opencv-contour-coordinates-to-x-and-y-arrays-for-centroid-distance</loc>
    <lastmod>2026-11-09T13:59:11-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-9dcecc55f76f87dc947c08fc.jpg?v=1794250751</image:loc>
      <image:title>OpenCV contour coordinates to x and y arrays for centroid distance</image:title>
      <image:caption>OpenCV contour coordinates to x and y arrays for centroid distance</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/dmc-code-readers-for-workpiece-tracking-ip-camera-or-smart-reader</loc>
    <lastmod>2026-11-09T14:00:25-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-23124922333220f0cc11f09e.jpg?v=1794250825</image:loc>
      <image:title>DMC code readers for workpiece tracking: IP camera or smart reader</image:title>
      <image:caption>DMC code readers for workpiece tracking: IP camera or smart reader</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/mipi-csi-2-image-capture-pipeline-sensor-to-host-step-by-step</loc>
    <lastmod>2026-11-09T14:01:35-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-1c6d7a917ab682adc94b29a9.jpg?v=1794250895</image:loc>
      <image:title>MIPI CSI-2 image capture pipeline: sensor to host step by step</image:title>
      <image:caption>MIPI CSI-2 image capture pipeline: sensor to host step by step</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/first-chance-exceptions-in-the-debug-output-when-to-ignore-them</loc>
    <lastmod>2026-11-09T14:02:58-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-1a12eeefd85976806d527335.jpg?v=1794250978</image:loc>
      <image:title>First chance exceptions in the debug output: when to ignore them</image:title>
      <image:caption>First chance exceptions in the debug output: when to ignore them</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/autocomplete-not-working-for-compiled-python-vision-libraries</loc>
    <lastmod>2026-11-09T14:04:10-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-af42e35787d1613a45419f5e.jpg?v=1794251050</image:loc>
      <image:title>Autocomplete not working for compiled Python vision libraries</image:title>
      <image:caption>Autocomplete not working for compiled Python vision libraries</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/photogrammetry-with-coded-markers-and-scale-bars-for-3d-measurement</loc>
    <lastmod>2026-11-09T14:09:24-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-17588900da310414f0b86ab7.jpg?v=1794251364</image:loc>
      <image:title>Photogrammetry with coded markers and scale bars for 3D measurement</image:title>
      <image:caption>Photogrammetry with coded markers and scale bars for 3D measurement</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/imx219-and-imx477-on-jetson-built-in-driver-support-and-stereo-sync</loc>
    <lastmod>2026-11-09T14:10:36-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-684274ee47cb6f21aee5d78d.jpg?v=1794251436</image:loc>
      <image:title>IMX219 and IMX477 on Jetson: built-in driver support and stereo sync</image:title>
      <image:caption>IMX219 and IMX477 on Jetson: built-in driver support and stereo sync</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/camera-not-found-make-sure-the-api-matches-the-camera-interface</loc>
    <lastmod>2026-11-09T14:11:45-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-1ee985cdaa667a9ad5f8ff4c.jpg?v=1794251505</image:loc>
      <image:title>Camera not found: make sure the API matches the camera interface</image:title>
      <image:caption>Camera not found: make sure the API matches the camera interface</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/backlight-for-width-measurement-on-shiny-turned-steel</loc>
    <lastmod>2026-11-09T14:12:57-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-4269c8a3c82f1ffe75454ac0.jpg?v=1794251577</image:loc>
      <image:title>Backlight for width measurement on shiny turned steel</image:title>
      <image:caption>Backlight for width measurement on shiny turned steel</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/camera-info-full-of-zeros-calibrate-intrinsics-yourself</loc>
    <lastmod>2026-11-09T14:20:21-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-20e1c2aebc56ad9c7b922138.jpg?v=1794251650</image:loc>
      <image:title>Camera info full of zeros: calibrate intrinsics yourself</image:title>
      <image:caption>Camera info full of zeros: calibrate intrinsics yourself</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/robot-picks-apply-a-vision-correction-of-x-y-and-angle-in-one-shot</loc>
    <lastmod>2026-11-09T14:21:31-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-faf081511be35ae835ee329c.jpg?v=1794251943</image:loc>
      <image:title>Robot picks: apply a vision correction of X, Y and angle in one shot</image:title>
      <image:caption>Robot picks: apply a vision correction of X, Y and angle in one shot</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/vio-camera-module-components-sensor-lens-and-imu-choices</loc>
    <lastmod>2026-11-09T16:38:18-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-e6a82d2036ffb9eb2aed114e.jpg?v=1794252021</image:loc>
      <image:title>VIO camera module components: sensor, lens and IMU choices</image:title>
      <image:caption>VIO camera module components: sensor, lens and IMU choices</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/one-vision-result-two-robot-tasks-share-one-work-object</loc>
    <lastmod>2026-11-09T14:21:29-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-8da6887dcb942236e36e3930.jpg?v=1794252089</image:loc>
      <image:title>One vision result, two robot tasks: share one work object</image:title>
      <image:caption>One vision result, two robot tasks: share one work object</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/part-position-and-barcode-reading-in-one-image</loc>
    <lastmod>2026-11-09T14:22:40-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-1fab6c04c0efda11cdeb92bb.jpg?v=1794252160</image:loc>
      <image:title>Part position and barcode reading in one image</image:title>
      <image:caption>Part position and barcode reading in one image</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/remote-ip-camera-snapshot-url-for-a-one-button-live-view</loc>
    <lastmod>2026-11-09T14:23:47-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-a42dd4d77fdc19ecb3f4b288.jpg?v=1794252227</image:loc>
      <image:title>Remote IP camera snapshot URL for a one-button live view</image:title>
      <image:caption>Remote IP camera snapshot URL for a one-button live view</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/wrist-camera-object-presence-detection-without-picking</loc>
    <lastmod>2026-11-09T14:27:59-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-ddf07fff784d696937bad25d.jpg?v=1794252479</image:loc>
      <image:title>Wrist camera object presence detection without picking</image:title>
      <image:caption>Wrist camera object presence detection without picking</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/circle-occlusion-picking-unknown-parts-on-a-printed-detection-sheet</loc>
    <lastmod>2026-11-09T14:29:10-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-ffafb7c7ecd90c6bc0cc60c8.jpg?v=1794252550</image:loc>
      <image:title>Circle occlusion picking: unknown parts on a printed detection sheet</image:title>
      <image:caption>Circle occlusion picking: unknown parts on a printed detection sheet</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/variable-waypoint-reference-frame-fix-wrong-direction-robot-picks</loc>
    <lastmod>2026-11-09T14:30:16-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-905f8409a62c7276da7ddb93.jpg?v=1794252616</image:loc>
      <image:title>Variable waypoint reference frame: fix wrong-direction robot picks</image:title>
      <image:caption>Variable waypoint reference frame: fix wrong-direction robot picks</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/auto-pick-taught-objects-with-a-vision-model-the-generic-method</loc>
    <lastmod>2026-11-09T16:01:40-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-1b33a06461858bac57156ea3.jpg?v=1794252682</image:loc>
      <image:title>Auto-pick taught objects with a vision model: the generic method</image:title>
      <image:caption>Auto-pick taught objects with a vision model: the generic method</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/camera-persistent-ip-address-not-retained-after-a-reboot-power-cycle</loc>
    <lastmod>2026-11-09T15:25:17-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-c0f31814baa52d00916e663c.jpg?v=1794252756</image:loc>
      <image:title>Camera persistent IP address not retained after a reboot: power cycle</image:title>
      <image:caption>Camera persistent IP address not retained after a reboot: power cycle</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/batch-picking-from-a-tray-loop-vision-locate-until-no-parts-found</loc>
    <lastmod>2026-11-09T22:30:07-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-91fe7bcbe865419aef398104.jpg?v=1794253025</image:loc>
      <image:title>Batch picking from a tray: loop vision locate until no parts found</image:title>
      <image:caption>Batch picking from a tray: loop vision locate until no parts found</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/save-images-from-an-abb-yumi-integrated-vision-camera</loc>
    <lastmod>2026-11-09T14:38:14-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-c7d872f825949879d013212a.jpg?v=1794253094</image:loc>
      <image:title>Save images from an ABB YuMi integrated vision camera</image:title>
      <image:caption>Save images from an ABB YuMi integrated vision camera</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/thermal-camera-working-distance-and-spot-size-for-safe-scans</loc>
    <lastmod>2026-11-09T14:39:26-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-c839537342c01bb7b6c7254d.jpg?v=1794253165</image:loc>
      <image:title>Thermal camera working distance and spot size for safe scans</image:title>
      <image:caption>Thermal camera working distance and spot size for safe scans</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/display-multiple-ip-camera-streams-on-one-hmi-screen</loc>
    <lastmod>2026-11-09T14:40:35-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-eaf3f0c1c89b6f7f4b64c53c.jpg?v=1794253235</image:loc>
      <image:title>Display multiple IP camera streams on one HMI screen</image:title>
      <image:caption>Display multiple IP camera streams on one HMI screen</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/metal-part-on-metal-background-lighting-for-consistent-detection</loc>
    <lastmod>2026-11-09T14:41:51-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-efb755fc44b0425dfaf7c895.jpg?v=1794253311</image:loc>
      <image:title>Metal part on metal background: lighting for consistent detection</image:title>
      <image:caption>Metal part on metal background: lighting for consistent detection</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/camera-calibration-with-a-known-distance-fix-the-z-translation</loc>
    <lastmod>2026-11-09T23:04:06-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-60a72c7cd8183a83a9b6e39c.jpg?v=1794253570</image:loc>
      <image:title>Camera calibration with a known distance: fix the Z translation</image:title>
      <image:caption>Camera calibration with a known distance: fix the Z translation</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/remove-glare-from-saturated-pixels-in-defect-detection</loc>
    <lastmod>2026-11-09T14:47:29-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-4bbbc6e2b8812f55fb338a9a.jpg?v=1794253649</image:loc>
      <image:title>Remove glare from saturated pixels in defect detection</image:title>
      <image:caption>Remove glare from saturated pixels in defect detection</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/camera3-getbuffer-timed-out-after-3000ms-why-output-buffers-starve</loc>
    <lastmod>2026-11-09T14:48:38-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-0ad2a8fee77dcf2bfc6dd899.jpg?v=1794253718</image:loc>
      <image:title>Camera3 getBuffer timed out after 3000ms: why output buffers starve</image:title>
      <image:caption>Camera3 getBuffer timed out after 3000ms: why output buffers starve</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/change-camera-roi-on-the-fly-what-genicam-allows-and-what-breaks</loc>
    <lastmod>2026-11-09T14:49:49-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-d80b64a667f69ae2346a582f.jpg?v=1794253789</image:loc>
      <image:title>Change camera ROI on the fly: what GenICam allows and what breaks</image:title>
      <image:caption>Change camera ROI on the fly: what GenICam allows and what breaks</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/null-frames-in-a-multi-camera-callback-handle-them-in-the-queue</loc>
    <lastmod>2026-11-09T14:51:06-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-43c74bd531b46e06aed3f49d.jpg?v=1794253866</image:loc>
      <image:title>Null frames in a multi camera callback: handle them in the queue</image:title>
      <image:caption>Null frames in a multi camera callback: handle them in the queue</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/valueerror-a-must-be-greater-than-0-empty-yolo-anchor-dataset</loc>
    <lastmod>2026-11-09T14:55:04-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-ade1bc42a0d1a87b46d2646a.jpg?v=1794254104</image:loc>
      <image:title>ValueError: a must be greater than 0: empty YOLO anchor dataset</image:title>
      <image:caption>ValueError: a must be greater than 0: empty YOLO anchor dataset</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/inspect-multiple-ink-colors-with-one-rgb-light-sequence</loc>
    <lastmod>2026-11-09T14:56:17-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-667f39d6bf309e01abbdf983.jpg?v=1794254177</image:loc>
      <image:title>Inspect multiple ink colors with one RGB light sequence</image:title>
      <image:caption>Inspect multiple ink colors with one RGB light sequence</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/choosing-an-itof-sensor-modulation-frequency-and-ambient-light</loc>
    <lastmod>2026-11-09T14:57:34-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-e665ae93d8f39011b2d77335.jpg?v=1794254254</image:loc>
      <image:title>Choosing an iToF sensor: modulation frequency and ambient light</image:title>
      <image:caption>Choosing an iToF sensor: modulation frequency and ambient light</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/choosing-a-lens-for-3-45-micron-pixel-pitch-5-mp-sensors</loc>
    <lastmod>2026-11-09T14:58:45-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-c4e48d02c6009157d99f0107.jpg?v=1794254324</image:loc>
      <image:title>Choosing a lens for 3.45 micron pixel pitch 5 MP sensors</image:title>
      <image:caption>Choosing a lens for 3.45 micron pixel pitch 5 MP sensors</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/lens-vignetting-causes-and-fixes-image-circle-vs-natural-falloff</loc>
    <lastmod>2026-11-09T16:01:41-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-f569de9514b1321c28c4e8c6.jpg?v=1794254398</image:loc>
      <image:title>Lens vignetting causes and fixes: image circle vs natural falloff</image:title>
      <image:caption>Lens vignetting causes and fixes: image circle vs natural falloff</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/detect-snap-movement-frame-by-frame-tracking-a-fast-shape-change</loc>
    <lastmod>2026-11-09T15:20:15-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-8d105621e192d1f08d8f2ebf.jpg?v=1794255615</image:loc>
      <image:title>Detect snap movement frame by frame: tracking a fast shape change</image:title>
      <image:caption>Detect snap movement frame by frame: tracking a fast shape change</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/gige-camera-not-detected-power-link-speed-and-ip-checks</loc>
    <lastmod>2026-11-09T20:15:19-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-c9203c5e6dfc06d0a3c89fb2.jpg?v=1794255916</image:loc>
      <image:title>GigE camera not detected: power, link speed and IP checks</image:title>
      <image:caption>GigE camera not detected: power, link speed and IP checks</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/hand-eye-calibration-dataset-acquisition-with-saved-robot-poses</loc>
    <lastmod>2026-11-10T00:36:30-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-2b5dee9003164fa82f2dae6b.jpg?v=1794255997</image:loc>
      <image:title>Hand-eye calibration dataset acquisition with saved robot poses</image:title>
      <image:caption>Hand-eye calibration dataset acquisition with saved robot poses</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/browse-and-set-any-genicam-feature-with-a-generic-feature-tree</loc>
    <lastmod>2026-11-09T15:27:49-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-a8436e8c23321673dd46ddc7.jpg?v=1794256069</image:loc>
      <image:title>Browse and set any GenICam feature with a generic feature tree</image:title>
      <image:caption>Browse and set any GenICam feature with a generic feature tree</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/in-line-illumination-in-machine-vision-when-specular-parts-need-it</loc>
    <lastmod>2026-11-09T15:32:04-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-5dc5c65035f137d8c377b2e8.jpg?v=1794256324</image:loc>
      <image:title>In-line illumination in machine vision: when specular parts need it</image:title>
      <image:caption>In-line illumination in machine vision: when specular parts need it</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/dropped-frames-with-a-primary-secondary-camera-trigger</loc>
    <lastmod>2026-11-09T15:37:13-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-55a3820b88fd6f213e37a405.jpg?v=1794256633</image:loc>
      <image:title>Dropped frames with a primary secondary camera trigger</image:title>
      <image:caption>Dropped frames with a primary secondary camera trigger</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/gentl-cti-file-added-but-no-error-validate-before-you-enumerate</loc>
    <lastmod>2026-11-09T21:02:00-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-674637f887e315fa5ba553f9.jpg?v=1794257174</image:loc>
      <image:title>GenTL CTI file added but no error: validate before you enumerate</image:title>
      <image:caption>GenTL CTI file added but no error: validate before you enumerate</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/plan-your-first-vision-inspection-station-start-small-and-scale</loc>
    <lastmod>2026-11-09T15:51:24-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-aff3e9daf19947422481c656.jpg?v=1794257484</image:loc>
      <image:title>Plan your first vision inspection station: start small and scale</image:title>
      <image:caption>Plan your first vision inspection station: start small and scale</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/modular-machine-vision-lighting-one-light-many-inspection-tasks</loc>
    <lastmod>2026-11-09T15:52:40-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-bf2c58555639b24afd0985a6.jpg?v=1794257560</image:loc>
      <image:title>Modular machine vision lighting: one light, many inspection tasks</image:title>
      <image:caption>Modular machine vision lighting: one light, many inspection tasks</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/camera-exposure-and-gain-properties-missing-after-a-gstreamer-upgrade</loc>
    <lastmod>2026-11-09T20:56:27-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-33d21292e3c463de52cf4368.jpg?v=1794257636</image:loc>
      <image:title>Camera exposure and gain properties missing after a GStreamer upgrade</image:title>
      <image:caption>Camera exposure and gain properties missing after a GStreamer upgrade</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/one-stereo-camera-out-of-focus-diagnose-it-with-a-chessboard</loc>
    <lastmod>2026-11-09T19:26:09-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-3d2d48afe805eacbde1a3920.jpg?v=1794257709</image:loc>
      <image:title>One stereo camera out of focus: diagnose it with a chessboard</image:title>
      <image:caption>One stereo camera out of focus: diagnose it with a chessboard</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/ultra-wide-lens-thumbscrew-what-the-lock-screw-clamps</loc>
    <lastmod>2026-11-09T16:01:44-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-074aec5c407304c16131db24.jpg?v=1794258023</image:loc>
      <image:title>Ultra wide lens thumbscrew: what the lock screw clamps</image:title>
      <image:caption>Ultra wide lens thumbscrew: what the lock screw clamps</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/buzzer-on-a-vision-board-gpio-why-the-pin-will-not-drive-it-directly</loc>
    <lastmod>2026-11-09T16:01:39-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-99a8d47a9dbd99a0312b7f42.jpg?v=1794258099</image:loc>
      <image:title>Buzzer on a vision board GPIO: why the pin will not drive it directly</image:title>
      <image:caption>Buzzer on a vision board GPIO: why the pin will not drive it directly</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/event-camera-temporal-filter-bias-can-you-target-a-motion-frequency</loc>
    <lastmod>2026-11-09T16:06:12-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-225c606d5ba29fee86945864.jpg?v=1794258371</image:loc>
      <image:title>Event camera temporal filter bias: can you target a motion frequency</image:title>
      <image:caption>Event camera temporal filter bias: can you target a motion frequency</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/linear-rgb-vs-srgb-image-brightness-in-script-vs-viewer</loc>
    <lastmod>2026-11-09T16:14:12-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-c270bb4dfc3b0167ce6e7d67.jpg?v=1794258852</image:loc>
      <image:title>Linear RGB vs sRGB: image brightness in script vs viewer</image:title>
      <image:caption>Linear RGB vs sRGB: image brightness in script vs viewer</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/stream-buffer-handling-mode-set-newest-only-on-the-transport-layer</loc>
    <lastmod>2026-11-09T16:26:11-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-7a40441e99c514b322fdc618.jpg?v=1794259571</image:loc>
      <image:title>Stream buffer handling mode: set newest only on the transport layer</image:title>
      <image:caption>Stream buffer handling mode: set newest only on the transport layer</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/fiducial-pose-drift-over-time-check-lighting-before-the-code</loc>
    <lastmod>2026-11-09T16:33:14-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-0cbf6e03f548a84c49ab454b.jpg?v=1794259993</image:loc>
      <image:title>Fiducial pose drift over time: check lighting before the code</image:title>
      <image:caption>Fiducial pose drift over time: check lighting before the code</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/board-level-camera-sensor-compatibility-match-the-host-before-you-buy</loc>
    <lastmod>2026-11-09T16:38:11-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-d6e5cec433cf7f67e5e4f39d.jpg?v=1794260291</image:loc>
      <image:title>Board level camera sensor compatibility: match the host before you buy</image:title>
      <image:caption>Board level camera sensor compatibility: match the host before you buy</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/implicit-int-to-float-conversion-warning-fix-or-ignore</loc>
    <lastmod>2026-11-09T16:39:34-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-48c2abdb4ffbfbc5f7e5e36b.jpg?v=1794260374</image:loc>
      <image:title>Implicit int to float conversion warning: fix or ignore</image:title>
      <image:caption>Implicit int to float conversion warning: fix or ignore</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/minimum-object-size-for-3d-depth-camera-detection</loc>
    <lastmod>2026-11-09T23:23:20-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-af6f6c6a14ee388a393f11d0.jpg?v=1794260451</image:loc>
      <image:title>Minimum object size for 3D depth camera detection</image:title>
      <image:caption>Minimum object size for 3D depth camera detection</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/uvc-camera-control-errors-after-an-os-update-fix-the-e-pointer</loc>
    <lastmod>2026-11-09T16:42:05-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-35e334a8dff9232780383122.jpg?v=1794260525</image:loc>
      <image:title>UVC camera control errors after an OS update: fix the E_POINTER</image:title>
      <image:caption>UVC camera control errors after an OS update: fix the E_POINTER</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/python-camera-sdk-install-script-fails-under-pyenv-use-pip-directly</loc>
    <lastmod>2026-11-09T20:56:32-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-d1a37def9099a466202efaae.jpg?v=1794260768</image:loc>
      <image:title>Python camera SDK install script fails under pyenv: use pip directly</image:title>
      <image:caption>Python camera SDK install script fails under pyenv: use pip directly</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/ros-2-point-cloud-black-in-docker-fix-gpu-runtime-passthrough</loc>
    <lastmod>2026-11-09T16:47:25-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-f41df56b3f63b93986fa710f.jpg?v=1794260845</image:loc>
      <image:title>ROS 2 point cloud black in Docker: fix GPU runtime passthrough</image:title>
      <image:caption>ROS 2 point cloud black in Docker: fix GPU runtime passthrough</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/vision-system-and-robot-gripper-control-architecture-who-drives-what</loc>
    <lastmod>2026-11-09T16:48:41-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-9ff6b4ebcb37a646b5280f98.jpg?v=1794260921</image:loc>
      <image:title>Vision system and robot gripper control architecture: who drives what</image:title>
      <image:caption>Vision system and robot gripper control architecture: who drives what</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/unreal-engine-camera-tracking-connect-a-sensor-via-vrpn-or-live-link</loc>
    <lastmod>2026-11-09T16:53:10-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-d3348537454b8000dacee470.jpg?v=1794261189</image:loc>
      <image:title>Unreal Engine camera tracking: connect a sensor via VRPN or Live Link</image:title>
      <image:caption>Unreal Engine camera tracking: connect a sensor via VRPN or Live Link</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/yolo-pose-keypoints-on-a-cropped-person-image-how-to-get-all-17</loc>
    <lastmod>2026-11-09T18:13:09-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-503c7d61bc4d72d13f61035b.jpg?v=1794261265</image:loc>
      <image:title>YOLO pose keypoints on a cropped person image: how to get all 17</image:title>
      <image:caption>YOLO pose keypoints on a cropped person image: how to get all 17</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/modify-depth-frame-data-in-numpy-so-changes-are-persistent</loc>
    <lastmod>2026-11-09T16:55:34-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-292e2e4c394c8c1aaa192e0f.jpg?v=1794261334</image:loc>
      <image:title>Modify depth frame data in numpy so changes are persistent</image:title>
      <image:caption>Modify depth frame data in numpy so changes are persistent</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/tf-echo-time-0-000-why-static-camera-transforms-show-no-timestamp</loc>
    <lastmod>2026-11-09T17:00:07-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-bd50888ab6c9364f3d4686b4.jpg?v=1794261607</image:loc>
      <image:title>tf_echo time 0.000: why static camera transforms show no timestamp</image:title>
      <image:caption>tf_echo time 0.000: why static camera transforms show no timestamp</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/usb3-vision-camera-has-no-v4l2-support-pick-the-acquisition-path</loc>
    <lastmod>2026-11-09T17:01:19-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-f620945d296c87970f28e29e.jpg?v=1794261679</image:loc>
      <image:title>USB3 Vision camera has no V4L2 support: pick the acquisition path</image:title>
      <image:caption>USB3 Vision camera has no V4L2 support: pick the acquisition path</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/barcode-match-verification-build-a-pass-fail-check-station</loc>
    <lastmod>2026-11-09T17:02:31-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-9d4aec9d23a4b2a6b0e91612.jpg?v=1794261751</image:loc>
      <image:title>Barcode match verification: build a pass/fail check station</image:title>
      <image:caption>Barcode match verification: build a pass/fail check station</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/depth-camera-performance-vs-operational-temperature-range</loc>
    <lastmod>2026-11-09T17:13:13-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-1a0b275367a71e15f9976a05.jpg?v=1794262393</image:loc>
      <image:title>Depth camera performance vs operational temperature range</image:title>
      <image:caption>Depth camera performance vs operational temperature range</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/device-descriptor-request-failed-a-usb-camera-that-died-electrically</loc>
    <lastmod>2026-11-09T17:18:15-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-8d86be83721cfb488abf200c.jpg?v=1794262695</image:loc>
      <image:title>Device descriptor request failed: a USB camera that died electrically</image:title>
      <image:caption>Device descriptor request failed: a USB camera that died electrically</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/missing-frames-in-recorded-depth-bag-playback-causes-and-fixes</loc>
    <lastmod>2026-11-09T22:52:10-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-927349f16b31d46c3af381f7.jpg?v=1794262767</image:loc>
      <image:title>Missing frames in recorded depth bag playback: causes and fixes</image:title>
      <image:caption>Missing frames in recorded depth bag playback: causes and fixes</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/auto-exposure-limit-units-in-microseconds-query-before-you-set</loc>
    <lastmod>2026-11-09T17:24:04-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-f01d52370728ec6e729dce66.jpg?v=1794263044</image:loc>
      <image:title>Auto exposure limit units in microseconds: query before you set</image:title>
      <image:caption>Auto exposure limit units in microseconds: query before you set</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/picamera2-capture-array-low-fps-link-or-python-loop</loc>
    <lastmod>2026-11-09T19:27:26-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-ecf4d5e92d99149f1dd92d04.jpg?v=1794263114</image:loc>
      <image:title>Picamera2 capture_array low fps: link or Python loop?</image:title>
      <image:caption>Picamera2 capture_array low fps: link or Python loop?</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/record-depth-and-color-to-a-bag-file-not-an-avi</loc>
    <lastmod>2026-11-09T22:52:10-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-3c2384c6ccf3afe37aacb536.jpg?v=1794263718</image:loc>
      <image:title>Record depth and color to a bag file, not an AVI</image:title>
      <image:caption>Record depth and color to a bag file, not an AVI</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/gige-camera-not-online-in-ros-fix-the-three-stacked-causes</loc>
    <lastmod>2026-11-09T17:42:03-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-8116897be52ef3fef445832f.jpg?v=1794264123</image:loc>
      <image:title>GigE camera not online in ROS: fix the three stacked causes</image:title>
      <image:caption>GigE camera not online in ROS: fix the three stacked causes</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/align-rgb-and-depth-frames-from-a-bag-file-playback-method</loc>
    <lastmod>2026-11-10T00:29:06-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-5b816f9c5d89b333337fbd87.jpg?v=1794264358</image:loc>
      <image:title>Align RGB and depth frames from a bag file: playback method</image:title>
      <image:caption>Align RGB and depth frames from a bag file: playback method</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/embedded-camera-snapshot-lockups-bypass-the-jpeg-stall</loc>
    <lastmod>2026-11-09T17:56:07-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-8c075d2f9832fc4cb9a5e124.jpg?v=1794264967</image:loc>
      <image:title>Embedded camera snapshot lockups: bypass the JPEG stall</image:title>
      <image:caption>Embedded camera snapshot lockups: bypass the JPEG stall</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/buffer-info-width-not-available-fix-the-chunk-payload-type</loc>
    <lastmod>2026-11-09T23:22:06-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-eb4c33d77b0cee3f5ef53618.jpg?v=1794265511</image:loc>
      <image:title>Buffer info width not available: fix the chunk payload type</image:title>
      <image:caption>Buffer info width not available: fix the chunk payload type</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/save-yolo-obb-detections-to-csv-with-timestamp-and-confidence</loc>
    <lastmod>2026-11-09T18:13:07-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-0037bee801621b392979d199.jpg?v=1794265987</image:loc>
      <image:title>Save YOLO OBB detections to CSV with timestamp and confidence</image:title>
      <image:caption>Save YOLO OBB detections to CSV with timestamp and confidence</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/output-queue-stream-name-doesn-t-exist-build-the-pipeline-first</loc>
    <lastmod>2026-11-09T18:24:09-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-393d04a4ed8aee651d0f2ea6.jpg?v=1794266649</image:loc>
      <image:title>Output queue stream name doesn&apos;t exist: build the pipeline first</image:title>
      <image:caption>Output queue stream name doesn&apos;t exist: build the pipeline first</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://lumaspecvision.com/blogs/learn/usb2-bandwidth-and-5mp-frame-rate-size-the-data-rate-first</loc>
    <lastmod>2026-11-09T18:29:22-05:00</lastmod>
    <changefreq>weekly</changefreq>
    <image:image>
      <image:loc>https://cdn.shopify.com/s/files/1/1018/5434/7546/articles/learn-share-1f0aa1ed8ab745004824d079.jpg?v=1794266962</image:loc>
      <image:title>USB2 bandwidth and 5MP frame rate: size the data rate first</image:title>
      <image:caption>USB2 bandwidth and 5MP frame rate: size the data rate first</image:caption>
    </image:image>
  </url>
</urlset>
