DepthAI.Net.Imaging.ImageSharp 0.1.0

dotnet add package DepthAI.Net.Imaging.ImageSharp --version 0.1.0
                    
NuGet\Install-Package DepthAI.Net.Imaging.ImageSharp -Version 0.1.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="DepthAI.Net.Imaging.ImageSharp" Version="0.1.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="DepthAI.Net.Imaging.ImageSharp" Version="0.1.0" />
                    
Directory.Packages.props
<PackageReference Include="DepthAI.Net.Imaging.ImageSharp" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add DepthAI.Net.Imaging.ImageSharp --version 0.1.0
                    
#r "nuget: DepthAI.Net.Imaging.ImageSharp, 0.1.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package DepthAI.Net.Imaging.ImageSharp@0.1.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=DepthAI.Net.Imaging.ImageSharp&version=0.1.0
                    
Install as a Cake Addin
#tool nuget:?package=DepthAI.Net.Imaging.ImageSharp&version=0.1.0
                    
Install as a Cake Tool

DepthAI.Net

SDK .NET untuk DepthAI API V3 — kamera OAK dari Luxonis — lengkap dengan CLI, template proyek, sample, dan Jack The Code Bender, wizard pembuat aplikasi computer vision berbantuan LLM.

A .NET SDK for DepthAI API V3 (Luxonis OAK cameras), with a CLI, project templates, samples, and Jack The Code Bender — an LLM-assisted computer vision app wizard.

Dibuat oleh Gravicode Studios, dipimpin Kang Fadhil.


Isi / Contents

Mulai cepat Jalankan sesuatu dalam 2 menit
Status runtime native Baca ini dulu sebelum menghubungkan kamera
Paket Apa yang ada di dalam repo
Konsep inti Pipeline, stream, frame, inferensi
CLI depthai-dotnet-cli
Wizard Aplikasi desktop dengan asisten LLM
Dokumentasi lengkap Referensi API dan tutorial

Mulai cepat / Quick start

git clone https://github.com/DotNetVibeCoderz/Vibe_SDK
cd Vibe_SDK/DepthAI.Net
dotnet build

# Menjalankan sample deteksi objek — berjalan tanpa kamera sekalipun
dotnet run --project samples/console/DepthAI.Sample.PipelineRunner

Kode paling sederhana yang berguna:

using DepthAI;
using DepthAI.Pipelines;
using DepthAI.Streaming;

await using var device = await DepthAiDevice.OpenAsync();

var pipeline = Pipeline.CreateBuilder()
    .AddColorCamera("rgb", camera => camera.WithPreview(640, 480))
    .StreamOut("rgb.preview", "video")
    .Build(device.Capabilities);

await device.StartAsync(pipeline);

using var subscription = device.GetStream<ImageFrame>("video")
    .Subscribe(frame => Console.WriteLine($"{frame.Width}x{frame.Height}"));

Console.ReadLine();
await device.StopAsync();

Status runtime native / Native runtime status

Ini bagian terpenting untuk dipahami sebelum menyambungkan kamera.

SDK ini punya dua backend di balik satu antarmuka:

Backend Kegunaan Status
SimulationBackend Data sintetis: warna, kedalaman, deteksi Berfungsi penuh sekarang
NativeBackend Hardware OAK sungguhan lewat depthai-core Butuh pustaka depthai-c yang belum disertakan

NativeBackend melakukan P/Invoke ke depthai-c, sebuah shim C ABI tipis di atas depthai-core. Shim itu belum ada di repo ini dan harus dikompilasi dari C++ (butuh CMake dan toolchain C++). Sampai itu tersedia, membuka perangkat akan otomatis jatuh ke simulasi.

Alasan desainnya: depthai-core memaparkan API C++ dengan template dan tipe STL yang tidak punya ABI stabil, jadi P/Invoke langsung ke sana rapuh. Shim C dengan tipe POD adalah batas yang benar.

Yang tetap berfungsi dengan hardware nyata

Deteksi perangkat USB tidak membutuhkan depthai-core dan sudah bekerja:

dotnet run --project src/DepthAI.Net.Cli -- info
│ Runtime native │ tidak tersedia                                             │
│ Perangkat USB  │ 1 terdeteksi                                               │
│                │ OAK / Movidius MyriadX (sudah di-boot) — 03E7:F63B,        │
│                │ Booted, MxId 14442C10011298CD00                            │
│ Dampak         │ Perangkat fisik tidak bisa dibuka sampai pustaka native    │
│                │ terpasang; perintah memakai simulasi.                      │

Keluaran di atas diambil dari OAK-1 sungguhan yang tercolok saat pengembangan; MxId-nya dibaca langsung dari deskriptor USB dan cocok persis dengan yang dilaporkan depthai Python.

Pembedaan ini disengaja: "tidak ada kamera" dan "ada kamera tapi pustaka native belum terpasang" adalah dua keadaan yang butuh tindakan berbeda, jadi keduanya dilaporkan berbeda.

Melengkapi dukungan hardware

Lihat docs/id/native-runtime.md untuk ABI yang harus dipenuhi shim depthai-c beserta rencana pembangunannya.


Paket / Packages

Paket Isi
DepthAI.Net SDK inti: pipeline, perangkat, stream, inferensi, imaging dasar
DepthAI.Net.Imaging.ImageSharp Konversi ke Image<Rgb24>, encoding PNG/JPEG, depth 16-bit
DepthAI.Net.Imaging.SkiaSharp Konversi ke SKBitmap, jalur tercepat untuk Avalonia dan MAUI
DepthAI.Net.Imaging.SystemDrawing Konversi ke Bitmap untuk WinForms dan WPF (khusus Windows)
DepthAI.Net.Cli Tool depthai-dotnet-cli
DepthAI.Net.Templates Template dotnet new
DepthAI.Net.Wizard.Core Sistem proyek, template, dan lapisan asisten wizard

SDK inti sengaja tidak bergantung pada pustaka imaging mana pun, sehingga aplikasi bebas memilih ImageSharp, SkiaSharp, atau System.Drawing tanpa menyeret dua di antaranya.


Konsep inti / Core concepts

Pipeline

Pipeline adalah graf node yang dijalankan perangkat. Ada dua gaya penulisan:

// Fluent, untuk susunan yang lazim
var pipeline = Pipeline.CreateBuilder()
    .AddColorCamera("rgb", c => c.WithPreview(640, 400))
    .AddStereoDepth("stereo")                        // sekaligus menambah kamera mono kiri/kanan
    .AddObjectDetection(model, "rgb.preview", "detector")
    .StreamOut("detector.detections", "detections")
    .Build(device.Capabilities);

// Graf eksplisit, untuk susunan tidak biasa
var p = Pipeline.Create();
var camera = p.AddColorCamera("rgb");
var encoder = p.AddVideoEncoder("enc", e => e.Profile = VideoProfile.H265Main);
camera.Video.LinkTo(encoder.Input);
p.AddOutputStream(encoder.Bitstream, "video");

AddObjectDetection otomatis menyisipkan node resize bila ukuran preview kamera berbeda dari ukuran input model — ketidakcocokan itu penyebab paling sering deteksi "berjalan tapi tidak menemukan apa-apa".

Pipeline bisa disimpan sebagai JSON dan diubah tanpa menyentuh kode:

await pipeline.SaveToFileAsync("app.pipeline.json");
var loaded = await Pipeline.LoadFromFileAsync("app.pipeline.json",
    new PipelineLoadOptions { ModelResolver = name => model });

Siklus hidup frame

Frame memakai buffer dari ArrayPool dan dibuang segera setelah callback selesai. Bila frame perlu hidup lebih lama, salin:

using var s = device.GetStream<ImageFrame>("video").Subscribe(frame =>
{
    var copy = frame.Clone();               // aman disimpan
    var previous = Interlocked.Exchange(ref _latest, copy);
    previous?.Dispose();
});

Memakai frame yang sudah dibuang melempar ObjectDisposedException alih-alih diam-diam membaca memori yang sudah didaur ulang.

Kedalaman

Nilai 0 pada peta kedalaman berarti tidak ada pengukuran — oklusi, permukaan tanpa tekstur, atau di luar jangkauan. Bukan jarak nol.

float? distance = frame.GetDistanceMeters(x, y);   // null = tidak terukur
float[,] matrix = frame.ToMeterMatrix();           // NaN untuk piksel kosong

API-nya sengaja nullable supaya kasus ini tidak lolos diam-diam menjadi "objek sangat dekat".

Stream reaktif

Stream adalah IObservable<T> biasa, jadi bisa dikomposisi dengan System.Reactive bila mau, tapi operator yang paling sering dipakai sudah tersedia tanpa dependensi tambahan:

device.GetStream<ImageFrame>("video").Throttle(TimeSpan.FromMilliseconds(80));
device.GetStream<DetectionFrame>("detections").Where(f => f.Count > 0);
await foreach (var frame in device.GetStream<DepthFrame>("depth").ToAsyncEnumerable()) { }

CLI

dotnet tool install -g DepthAI.Net.Cli
Perintah Fungsi
depthai-dotnet-cli info Versi SDK, status runtime native, perangkat USB yang terdeteksi
depthai-dotnet-cli devices list Perangkat yang bisa dibuka, plus yang terpasang tapi belum bisa dibuka
depthai-dotnet-cli devices watch Memantau hotplug
depthai-dotnet-cli pipeline new <preset> Membuat berkas pipeline JSON
depthai-dotnet-cli pipeline validate <file> Memeriksa pipeline terhadap kemampuan perangkat
depthai-dotnet-cli pipeline deploy <file> Menjalankan dan melaporkan throughput tiap stream
depthai-dotnet-cli model info <file> Metadata model
depthai-dotnet-cli capture -o ./out Menangkap RGB dan kedalaman ke berkas

Tambahkan --simulate untuk memaksa simulasi, atau --require-hardware agar gagal alih-alih menyimulasikan.


Template proyek / Project templates

dotnet new install DepthAI.Net.Templates

dotnet new depthai-console -n VisiSaya --pipeline stereo-depth --fps 30
dotnet new depthai-desktop -n ViewerSaya
dotnet new depthai-web     -n WebSaya

Wizard memuat katalog yang jauh lebih luas — 16 template computer vision, dari penghitung orang sampai inspeksi kualitas dan kepatuhan APD.


Jack The Code Bender

Aplikasi desktop mirip code editor untuk membangun aplikasi computer vision, dengan asisten LLM yang benar-benar memahami SDK ini.

dotnet run --project src/DepthAI.Net.Wizard
  • Editor dengan tab, cari/ganti, ke baris, dan toggle nomor baris
  • Build, Run, Deploy langsung dari menu, dengan panel Logs dan status bar
  • Galeri template: 16 aplikasi computer vision siap pakai
  • Panel chat multi-sesi dengan lampiran gambar dan dokumen, render Markdown penuh
  • Empat penyedia LLM: OpenAI, Anthropic, Gemini, Ollama — bisa ditukar saat berjalan
  • Tema gelap dan terang

Asisten punya fungsi yang dieksekusi sungguhan: menulis berkas ke proyek, membuat pipeline JSON, memvalidasinya, memindai perangkat, mencari di internet, membaca URL, menghitung, dan membaca referensi API agar tidak menebak nama tipe.

Konfigurasi ada di app.config. Kunci API sebaiknya lewat variabel lingkungan (OPENAI_API_KEY, ANTHROPIC_API_KEY, GEMINI_API_KEY, TAVILY_API_KEY) — variabel lingkungan selalu menang atas berkas, dan tidak ikut ter-commit.


Sample

Sample Isi
samples/console/DepthAI.Sample.PipelineRunner Deteksi objek, keluaran konsol
samples/console/DepthAI.Sample.CaptureRgbd Merekam pasangan RGB dan kedalaman ke disk
samples/console/DepthAI.Sample.PeopleCounter Menghitung lintasan orang pada garis virtual
samples/avalonia/DepthAI.Sample.DepthViewer Warna dan kedalaman berdampingan, jarak di kursor
samples/avalonia/DepthAI.Sample.DetectionDashboard Video dengan overlay deteksi
samples/avalonia/DepthAI.Sample.FaceBlur Sensor privasi otomatis
samples/web/DepthAI.Sample.BlazorLive Blazor Server dengan inferensi live
samples/web/DepthAI.Sample.VisionApi REST API yang memaparkan deteksi dan kedalaman

Sample dihasilkan dari katalog template yang sama dengan yang dipakai wizard, jadi kodenya tidak pernah menyimpang.


Membangun / Building

dotnet build DepthAI.Net.slnx          # seluruh solusi
dotnet test                            # semua test (114)
dotnet test tests/DepthAI.Net.Core.Tests
dotnet test --filter "FullyQualifiedName~YoloParser"

Semua test berjalan tanpa kamera: backend simulasi menjalankan jalur kode yang sama dengan hardware, termasuk parser inferensi sungguhan.


Dokumentasi / Documentation

Bahasa Indonesia English
Referensi API API reference
Tutorial Tutorials
Runtime native Native runtime
Galeri Gallery

Lisensi / License

MIT. Lihat LICENSE.

Dibuat oleh Gravicode Studios, dipimpin Kang Fadhil.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.1.0 87 9/1/2026