---
title: "Reconstructed Slides: Ship Agents that Ship: A Hands-On Workshop - Kyle Penfound, Jeremy Adams, Dagger"
category: "slides"
video_id: "Fzb1a24hF-o"
sourceLabels: ["Cropped public YouTube video frames", "Local OpenCV slide-region detection", "Local RapidOCR"]
---

# Reconstructed Slides: Ship Agents that Ship: A Hands-On Workshop - Kyle Penfound, Jeremy Adams, Dagger

## Source Video
[Ship Agents that Ship: A Hands-On Workshop - Kyle Penfound, Jeremy Adams, Dagger](https://www.youtube.com/watch?v=Fzb1a24hF-o)

## Method
This deck is reconstructed from the existing video frame captures by detecting likely slide regions with OpenCV, cropping/upscaling those regions, deduplicating similar crops, and OCRing the cropped slide images locally. It is a cleaner companion to the full-stage frame deck.

## Reconstructed Slides
![[assets/reconstructed-slides/Fzb1a24hF-o/slide-001.jpg]]

- Source frame: `slide-001.jpg`
- Crop: `full` `[0, 0, 960, 540]` score `160.12`
![[assets/reconstructed-slides/Fzb1a24hF-o/slide-002.jpg]]

- Source frame: `slide-002.jpg`
- Crop: `full` `[0, 0, 960, 540]` score `177.24`
![[assets/reconstructed-slides/Fzb1a24hF-o/slide-003.jpg]]

- Source frame: `slide-003.jpg`
- Crop: `full` `[0, 0, 960, 540]` score `176.39`
![[assets/reconstructed-slides/Fzb1a24hF-o/slide-004.jpg]]

- Source frame: `slide-004.jpg`
- Crop: `full` `[0, 0, 960, 540]` score `166.97`
![[assets/reconstructed-slides/Fzb1a24hF-o/slide-005.jpg]]

- Source frame: `slide-005.jpg`
- Crop: `full` `[0, 0, 960, 540]` score `166.33`
![[assets/reconstructed-slides/Fzb1a24hF-o/slide-006.jpg]]

- Source frame: `slide-006.jpg`
- Crop: `full` `[0, 0, 960, 540]` score `176.95`
![[assets/reconstructed-slides/Fzb1a24hF-o/slide-007.jpg]]

- Source frame: `slide-007.jpg`
- Crop: `full` `[0, 0, 960, 540]` score `166.88`
![[assets/reconstructed-slides/Fzb1a24hF-o/slide-008.jpg]]

- Source frame: `slide-008.jpg`
- Crop: `full` `[0, 0, 960, 540]` score `159.53`
![[assets/reconstructed-slides/Fzb1a24hF-o/slide-009.jpg]]

- Source frame: `slide-009.jpg`
- Crop: `full` `[0, 0, 960, 540]` score `160.32`
![[assets/reconstructed-slides/Fzb1a24hF-o/slide-010.jpg]]

- Source frame: `slide-010.jpg`
- Crop: `full` `[0, 0, 960, 540]` score `157.71`
![[assets/reconstructed-slides/Fzb1a24hF-o/slide-011.jpg]]

- Source frame: `slide-011.jpg`
- Crop: `full` `[0, 0, 960, 540]` score `176.76`
![[assets/reconstructed-slides/Fzb1a24hF-o/slide-012.jpg]]

- Source frame: `slide-012.jpg`
- Crop: `full` `[0, 0, 960, 540]` score `176.86`
![[assets/reconstructed-slides/Fzb1a24hF-o/slide-013.jpg]]

- Source frame: `slide-013.jpg`
- Crop: `full` `[0, 0, 960, 540]` score `160.06`
![[assets/reconstructed-slides/Fzb1a24hF-o/slide-014.jpg]]

- Source frame: `slide-014.jpg`
- Crop: `full` `[0, 0, 960, 540]` score `177.17`
![[assets/reconstructed-slides/Fzb1a24hF-o/slide-015.jpg]]

- Source frame: `slide-016.jpg`
- Crop: `full` `[0, 0, 960, 540]` score `163.05`
![[assets/reconstructed-slides/Fzb1a24hF-o/slide-016.jpg]]

- Source frame: `slide-017.jpg`
- Crop: `full` `[0, 0, 960, 540]` score `176.77`
![[assets/reconstructed-slides/Fzb1a24hF-o/slide-017.jpg]]

- Source frame: `slide-018.jpg`
- Crop: `full` `[0, 0, 960, 540]` score `166.64`
![[assets/reconstructed-slides/Fzb1a24hF-o/slide-018.jpg]]

- Source frame: `slide-019.jpg`
- Crop: `full` `[0, 0, 960, 540]` score `162.09`
![[assets/reconstructed-slides/Fzb1a24hF-o/slide-019.jpg]]

- Source frame: `slide-020.jpg`
- Crop: `full` `[0, 0, 960, 540]` score `164.93`
![[assets/reconstructed-slides/Fzb1a24hF-o/slide-020.jpg]]

- Source frame: `slide-021.jpg`
- Crop: `full` `[0, 0, 960, 540]` score `161.9`
![[assets/reconstructed-slides/Fzb1a24hF-o/slide-021.jpg]]

- Source frame: `slide-023.jpg`
- Crop: `full` `[0, 0, 960, 540]` score `176.66`
![[assets/reconstructed-slides/Fzb1a24hF-o/slide-022.jpg]]

- Source frame: `slide-024.jpg`
- Crop: `full` `[0, 0, 960, 540]` score `177.3`
## Dense Scene-Detected Slide Candidates
- [[youtube-Fzb1a24hF-o-dense-slides]]
