Matlab Enhance Camera Image
MathWorksOfficialCreated by MathWorks
- Skill
- Workflow
- Science and research
- BSD-2-Clause
- No issues found
AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
This skill provides a structured, hardware-first approach to troubleshooting and enhancing images from cameras connected via MATLAB. It guides users through discovering camera capabilities, diagnosing quality issues like poor exposure, noise, or blur, and applying targeted hardware adjustments followed by software-based post-processing. The workflow emphasizes fixing issues at the source before using Image Processing Toolbox functions, ensuring optimal results for scientific and technical imaging tasks.
What it does
- Diagnoses image quality metrics including brightness, contrast, sharpness, noise, and color balance.
- Discovers and reports camera hardware properties at runtime for precise adjustment.
- Provides a decision table to map specific quality issues to hardware or software fixes.
- Applies Image Processing Toolbox functions in a recommended order to prevent quality degradation.
- Generates a reusable, custom MATLAB function for automated future image acquisition and enhancement.
- Supports both Image Acquisition Toolbox and USB Webcam support package interfaces.
When to use it
- When a camera feed appears too dark, blurry, noisy, or washed out.
- When you need to optimize camera settings for a specific scientific or technical application.
- When you need to perform consistent, repeatable image enhancement on captured frames.
- When you want to diagnose whether an image issue is caused by hardware settings or requires software correction.
Advantages
- Prioritizes hardware-level adjustments to maintain original image integrity.
- Prevents common pitfalls like sharpening noise or misinterpreting YUY2 color spaces.
- Automates the creation of custom acquisition pipelines for future use.
- Provides objective diagnostic metrics to quantify image quality improvements.
Usage examples
- “My camera image is very dark and noisy. Can you help me fix it?”
- The agent will connect to the camera, run a diagnostic to quantify the brightness and noise levels, suggest specific hardware adjustments like increasing exposure or reducing gain, and then apply denoising filters if necessary.
- “I need a script to capture images from my webcam that are always sharpened and brightened.”
- The agent will guide you through the manual tuning process to find the best settings, then generate a custom .m file that automates the connection, capture, and post-processing steps for future use.
Install
Download the skill as a ZIP:
https://mp-staging.autogineer.com/agent-skills/matlab/matlab-enhance-camera-image/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip matlab-enhance-camera-image.zip -d .agents/skills
Documentation by MathWorks
Purpose
Diagnose image quality issues from any connected camera and improve them through a combination of hardware setting adjustments and software post-processing. Operates in a hardware-first, software-second philosophy: always try to fix at the source before resorting to post-processing.
When to Use
User complains about poor image quality from a camera (too dark, blurry, noisy, washed out)
User asks how to improve or optimize camera settings
User captures an image and wants to enhance it
User mentions backlit subject, underexposed, overexposed, or out of focus
When NOT to Use
General image processing on files not from a camera (use IPT directly)
Building an image acquisition pipeline from scratch (use Image Acquisition Toolbox docs)
Camera geometric calibration (use Camera Calibrator app)
Reference Documents (load when needed)
Read references/diagnosis-guidance.md for detailed metric thresholds and backlight detection algorithms
Read references/hardware-tuning-guidance.md for property discovery patterns, camera-type property tables, and safe adjustment strategies (applicable to all camera types)
Read references/enhancement-guidance.md for IPT function parameters, pipeline ordering, and common errors
Script Entrypoints
scripts/diagnoseImageQuality.m— reusable diagnostic function; takes an image, returns a struct of quality metrics with assessments
Hard Requirements
Call
detect_matlab_toolboxesfirst to confirm Image Acquisition Toolbox and Image Processing Toolbox are installedCall
check_matlab_codeon any script before executing itNever hardcode camera property names — always discover at runtime
Protocol
Step 1 — Connect and Discover Camera Capabilities
API selection: When Image Acquisition Toolbox is available, always prefer videoinput over other interfaces like webcam(). videoinput exposes more properties (via propinfo), supports bulk frame acquisition (getdata), and provides FramesAcquiredFcn for streaming. Use webcam() only when Image Acquisition Toolbox is not installed and the user has the MATLAB Support Package for USB Webcams instead.
Connect to the camera and enumerate all available properties:
% For videoinput (preferred when Image Acquisition Toolbox is available):
vid = videoinput(adaptorName, deviceID, format);
vid.ReturnedColorSpace = 'rgb'; % Critical for YUY2 cameras
src = getselectedsource(vid);
props = properties(src);
% For webcam (fallback when only USB Webcams support package is installed):
cam = webcam();
props = properties(cam);Classify each discovered property by function:
| Problem Domain | Common Property Names |
|---|---|
| Brightness/Exposure | Exposure, ExposureTime, ExposureMode, Brightness, Gain, BacklightCompensation |
| Focus | Focus, FocusMode |
| Color | WhiteBalance, WhiteBalanceMode, Hue, Saturation, ColorEnable |
| Contrast/Tone | Contrast, Gamma, Sharpness |
Record valid ranges for each property. Report discovered capabilities to the user.
For properties that do NOT match the classification table above, apply the advanced property investigation protocol:
Group unrecognized properties by naming pattern (e.g., names containing "Trigger", "Pixel", "Bin", "LUT", "ROI", "Offset", "Decimation")
For
videoinputsources, usepropinfo(src, propName)to determine type, constraint, range, and read-only statusClassify as quality-relevant (likely affects image appearance: Binning, BlackLevel, LUT, DigitalGain, HDR) vs functional (affects acquisition mode, not quality: TriggerMode, PixelFormat, PacketSize, AcquisitionFrameRate)
Report all discovered properties to the user, distinguishing standard (known) from advanced (discovered)
For quality-relevant unknowns, follow the safe investigation protocol in references/hardware-tuning-guidance.md
Step 2 — Capture Baseline Image
For videoinput objects (preferred):
% Warm up the camera (critical — first frames are often blank or poorly exposed)
preview(vid);
pause(2);
closepreview(vid);
% Capture the reference image
baselineImg = getsnapshot(vid);
imshow(baselineImg);
title("Baseline Image");For webcam objects (fallback):
% Warm up the camera (critical — first frames are often blank or poorly exposed)
preview(cam);
pause(2);
closePreview(cam);
% Capture the reference image
baselineImg = snapshot(cam);
imshow(baselineImg);
title("Baseline Image");Note: snapshot() is webcam-only. For videoinput, use getsnapshot(vid). Both webcam and videoinput objects support preview().
Record current property values as baseline for comparison.
Step 3 — Understand User Concern
Before running diagnostics, identify what the user is trying to fix:
If the user already stated a specific complaint (e.g., "image is too dark", "I see banding"), note it as the primary concern
If the user has not stated a specific issue, ask: "What specific quality issue are you seeing, or would you like me to run a general assessment?"
If the user says "just make it better" or has no specific concern, proceed with the standard 6-metric evaluation only
Map the user's concern to one of these categories:
Standard metrics (covered by
diagnoseImageQuality.m): brightness, contrast, sharpness, noise, color balance, backlightingExtended concerns (require dynamic inline evaluation): vignetting, banding/striping, saturation clipping, flicker/inconsistency, chromatic aberration, distortion, or other
If the concern is an extended one, note it for dynamic evaluation in Step 4.
Step 4 — Diagnose Image Quality
Run the diagnostic script (always — provides the standard baseline):
addpath("scripts");
results = diagnoseImageQuality(baselineImg);
disp(results);The function returns a struct with fields:
brightness— mean intensity, assessmentclipping— highlight clipping (% pixels ≥ 250) and shadow clipping (% pixels ≤ 5), assessmentcontrast— standard deviation, assessmentsharpness— Laplacian variance, assessmentnoise— estimated noise level, assessmentcolorBalance— R/G and B/G ratios, assessmentbacklightRatio— center-vs-border brightness ratio, assessment
Each field has .value (numeric or struct) and .assessment ("OK", "Problem", or "Severe").
Identify the primary issue(s) — focus on fields assessed as "Problem" or "Severe".
Dynamic evaluation for extended concerns: If the user's concern from Step 3 is not covered by the standard 6 metrics, generate inline MATLAB code to evaluate it. See references/diagnosis-guidance.md § "Extended Metrics" for evaluation patterns and code templates. Report the extended metric result alongside the standard results.
Step 5 — Suggest Hardware Adjustments
Map diagnosed problems to available camera properties using the decision table below. Only suggest adjustments for properties the camera actually has.
Apply settings, re-capture, and compare metrics. Change one property at a time.
For videoinput objects (preferred):
% Example: increase exposure for dark image
src.Exposure = src.Exposure + 2;
newImg = getsnapshot(vid);
newResults = diagnoseImageQuality(newImg);For webcam objects (fallback):
% Example: increase exposure for dark image
cam.Exposure = cam.Exposure + 2;
newImg = snapshot(cam);
newResults = diagnoseImageQuality(newImg);Note: With videoinput, set properties on the source object (src), not the videoinput object. Use getsnapshot(vid) instead of snapshot().
Iterate if needed until metrics improve or hardware options are exhausted.
Step 6 — Apply Post-Processing Enhancement
Based on remaining issues after hardware adjustment, apply IPT functions in the correct order:
Brighten (if still dark):
imlocalbrighten,imadjust, gamma correctionContrast (if still flat):
locallapfilt,adapthisteqon luminance channelSharpen (if still soft):
imsharpen— always last
enhanced = baselineImg;
% Example: brighten a backlit image
enhanced = imlocalbrighten(enhanced, 0.8);
% Example: enhance local contrast
enhanced = locallapfilt(enhanced, 0.3, 1.5);
% Example: sharpen (last step)
enhanced = imsharpen(enhanced, 'Radius', 1.5, 'Amount', 1.0);Display before/after comparison:
montage({baselineImg, enhanced}, 'Size', [1 2]);
title("Before vs After Enhancement");Step 7 — Report and Generate Reusable Pipeline
Summarize the full workflow:
Original problem identified
Hardware adjustments applied and their effect
Software enhancements applied
Final metrics comparison (before vs after)
Generate a reusable .m function file that the user can call for future captures without the agent. Write it to a user-specified folder if provided, otherwise to the current MATLAB working directory (pwd). Do NOT write it to the skill's scripts/ folder — that is reserved for the skill's own helper functions.
After writing the file:
Run
check_matlab_codeon it to verify syntaxShow the user how to call it
Explain which settings and enhancements are baked in
Single-Shot Pipeline
The function should:
Connect to the camera with the discovered adaptor, device ID, and format
Set
ReturnedColorSpace = 'rgb'if the camera outputs YUY2 or other non-RGB formatApply the tuned hardware property settings that improved metrics
Warm up the camera (discard initial frames)
Capture a frame
Apply only the post-processing steps that measurably improved quality (in correct order)
Clean up (stop and delete the videoinput object)
Return the enhanced image
Decision Table
| Diagnosed Problem | Hardware Fix (if available) | Software Fix (IPT) |
|---|---|---|
| Subject too dark (backlit) | BacklightCompensation ↑, Exposure ↑, Brightness ↑ | imlocalbrighten, inverted imreducehaze |
| Overall underexposed | Exposure ↑, Gain ↑, Brightness ↑ | Gamma correction (.^ 0.7), imadjust |
| Overall overexposed | Exposure ↓, Brightness ↓ | imadjust with output range [0 0.8] |
| Low contrast | Contrast ↑, Gamma adjust | locallapfilt, adapthisteq on luminance |
| Motion blur | Exposure ↓ (faster shutter) | imsharpen (limited), deconvolution |
| Out of focus | Focus adjust (if available) | imsharpen (limited help) |
| High noise | Gain ↓, Exposure ↑ instead | imgaussfilt, imnlmfilt, wiener2 |
| Color cast | WhiteBalance adjust, WhiteBalanceMode=auto | Manual white point correction |
| Washed out | Gamma ↓, Contrast ↑ | imadjust, locallapfilt |
Generated Pipeline Templates
Replace placeholders with discovered values. Only include enhancement steps that measurably improved metrics.
Single-Shot Template (videoinput)
function img = acquireEnhancedImage()
%acquireEnhancedImage Capture and enhance image from <camera name>.
% img = acquireEnhancedImage() returns an enhanced RGB image.
vid = videoinput('<adaptor>', <deviceID>, '<format>');
vid.ReturnedColorSpace = 'rgb';
src = getselectedsource(vid);
% Tuned hardware settings
src.<Property1> = <value>;
src.<Property2> = <value>;
% Warm up
preview(vid);
pause(2);
closepreview(vid);
% Capture
img = getsnapshot(vid);
delete(vid);
% Enhancement pipeline (only steps that helped)
img = imlocalbrighten(img, <amount>);
img = imgaussfilt(img, <sigma>);
endNaming: use acquireEnhancedImage as default, or ask user for a preferred name. Follow lowerCamelCase. See references/enhancement-guidance.md § "Generating Reusable Functions" for parameterization and optional-input guidance.
Gotchas
localtonemaprequiressingleinput — always convert withim2single()first; passing uint8 throws an errorCamera warm-up is critical — first 5–10 frames are often blank or poorly exposed. Use
preview()or discard initial snapshots before capturingadapthisteq(CLAHE) needs a single-channel image — apply on V channel (HSV) or L channel (Lab), not directly on RGBPrefer Exposure over Gain — when a camera has both, increasing Exposure gives cleaner results; Gain amplifies noise
BacklightCompensation range varies — some cameras 0–1, others 0–2, others 0–255. Always check range at runtime
imlocalbrightenonly lifts dark regions — preserves already-bright areas; preferred over global brightness increase for backlit scenesPost-processing order matters — brighten first, then local contrast, then sharpen last. Sharpening amplifies noise if applied before denoising
Auto modes override manual values — set ExposureMode/WhiteBalanceMode to manual before adjusting the corresponding value
Resolution changes may reset properties — re-check property values after changing resolution
YUY2 cameras need
ReturnedColorSpace = 'rgb'— many USB webcams (e.g., Microsoft LifeCam) only output YUY2. Without settingvid.ReturnedColorSpace = 'rgb',getsnapshotreturns raw YCbCr data misinterpreted as RGB, causing wrong colors in display AND incorrect results from IPT functions and diagnostic metricssnapshotvsgetsnapshot—snapshot(cam)is webcam-only;getsnapshot(vid)is for videoinput objects. They are not interchangeableclosePreviewvsclosepreview— webcam uses camelCaseclosePreview(cam); videoinput uses lowercaseclosepreview(vid). Using the wrong case throws "Undefined command/function"videoinput prefers bulk
getdata— for multi-frame capture with videoinput, usegetdata(vid, N)instead of loopinggetsnapshot. It fetches N frames in one call with less overhead and lets the adaptor run at full speedUse
fullfilefor file saves — when saving images or generated files, usefullfile(pwd, 'filename.png')to avoid path resolution errors across platforms
Copyright 2026 The MathWorks, Inc.
Files
- ATTRIBUTION.mdAdded by AutoGineer1.0 KiB
- LICENSELicence file added by AutoGineer1.4 KiB
- SKILL.md14.8 KiB
- manifest.yaml548 B
- references/diagnosis-guidance.md8.4 KiB
- references/enhancement-guidance.md8.8 KiB
- references/hardware-tuning-guidance.md9.2 KiB
- scripts/diagnoseImageQuality.m4.5 KiB
references/hardware-tuning-guidance.md
Hardware Tuning Guidance — Property Discovery and Camera-Type Patterns
Property Discovery: webcam Objects
cam = webcam(); % Connect to default camera
cam = webcam(deviceName); % Connect by name
props = properties(cam); % List all settable propertiesTo inspect a specific property's current value:
cam.Brightness % Direct property accessTo check available values (for enumerated properties like Resolution):
cam.AvailableResolutions % Cell array of resolution stringsWebcam objects expose properties directly as object fields. There is no propinfo equivalent — valid ranges must be discovered by trial or documentation.
Property Discovery: videoinput Objects
vid = videoinput(adaptorName, deviceID, format);
src = getselectedsource(vid);
props = properties(src); % All source property names
info = propinfo(src, 'Brightness'); % Detailed property infopropinfo returns a struct with:
Type: 'double', 'integer', 'string', 'enum'Constraint: 'bounded', 'enum', 'none'ConstraintValue: [min max] for bounded, cell array for enumDefaultValue: factory defaultReadOnly: 'always', 'whileRunning', 'never'
Always use propinfo to discover valid ranges before suggesting values.
Common Camera Types and Typical Properties
USB Webcams (via webcam() or winvideo/linuxvideo/macvideo adaptor)
| Property | Typical Range | Notes |
|---|---|---|
| Brightness | 0–255 or -64 to 64 | Midpoint is neutral |
| Contrast | 0–255 or 0–100 | |
| Saturation | 0–255 or 0–100 | |
| Sharpness | 0–255 or 0–7 | Camera-side sharpening |
| Gamma | 72–500 or 1–10 | Often stored as 100× actual value |
| Exposure | -13 to -1 or -11 to 1 | Log2 scale (negative = faster) |
| ExposureMode | auto / manual | Auto overrides manual Exposure value |
| Gain | 0–255 or 0–100 | Amplifies signal and noise |
| BacklightCompensation | 0–1, 0–2, or 0–255 | Range varies widely by camera |
| WhiteBalance | 2800–6500 | Color temperature in Kelvin |
| WhiteBalanceMode | auto / manual | Auto overrides manual WhiteBalance |
| Focus | 0–255 or 0–40 | |
| FocusMode | auto / manual |
GigE / GenICam Industrial Cameras
| Property | Typical Range | Notes |
|---|---|---|
| ExposureTime | 10–1000000 μs | Direct microsecond control |
| Gain | 0–48 dB | Often fine-grained (0.1 dB steps) |
| GainAuto | Off / Once / Continuous | |
| BalanceWhiteAuto | Off / Once / Continuous | |
| BalanceRatio | 0.5–4.0 | Per-channel (Red, Blue selectable) |
| Gamma | 0.25–4.0 | Actual gamma value |
| BlackLevel | 0–255 | Offset added to sensor output |
| ExposureAuto | Off / Once / Continuous |
DCAM / IIDC Cameras (firewire, legacy)
| Property | Typical Range | Notes |
|---|---|---|
| Brightness | 0–255 | DC offset |
| Shutter | 0–4095 | Exposure time (camera-specific units) |
| Gain | 0–255 | Analog gain |
| WhiteBalance | Two values (U, V) | Separate blue/red balance |
| Gamma | 0–1 | On/off only on some cameras |
Safe Adjustment Strategy
Change one property at a time — multiple simultaneous changes make it impossible to determine which helped
Re-capture after each change — wait for 2-3 frames to stabilize (auto-exposure/auto-WB may need time)
Compare metrics quantitatively — use
diagnoseImageQualitybefore and afterRecord baseline — save initial property values so you can revert
Prefer hardware over software — fixing at the source preserves full dynamic range
Adjustment Priority Order
For a given problem, try properties in this order (most effective first):
| Problem | Priority Order |
|---|---|
| Too dark | Exposure ↑ → Brightness ↑ → Gain ↑ (last resort) |
| Too bright | Exposure ↓ → Brightness ↓ |
| Backlit | BacklightCompensation ↑ → Exposure ↑ → Gamma ↑ |
| Noisy | Gain ↓ → Exposure ↑ (compensate) |
| Blurry (motion) | Exposure ↓ (faster shutter) |
| Blurry (focus) | FocusMode=manual → Focus adjust |
| Color cast | WhiteBalanceMode=auto → WhiteBalance manual adjust |
| Low contrast | Contrast ↑ → Gamma adjust |
Investigating Unfamiliar Properties
When a camera exposes properties not listed in the tables above, use this protocol to reason about them safely.
Naming Heuristics
| Name Pattern | Likely Function | Quality-Relevant? |
|---|---|---|
| Binning, BinningHorizontal, BinningVertical | Pixel binning (combines adjacent pixels) | Yes — affects resolution and noise |
| BlackLevel, BlackLevelRaw | Sensor offset / pedestal | Yes — affects shadow detail |
| DigitalGain, DigitalShift | Digital amplification after ADC | Yes — amplifies noise like analog Gain |
| LUTEnable, LUTIndex, LUTValue | Look-up table for tone mapping | Yes — remaps pixel values |
| HDRMode, WDR | High dynamic range mode | Yes — changes exposure strategy |
| ROI, OffsetX, OffsetY, Width, Height | Region of interest | Partially — changes captured region, not quality |
| TriggerMode, TriggerSource, TriggerDelay | External trigger configuration | No — acquisition timing, not quality |
| PixelFormat, PixelSize | Data format (Mono8, BayerRG12, etc.) | Partially — bit depth affects dynamic range |
| PacketSize, StreamBytesPerSecond | Network transport (GigE) | No — bandwidth, not quality |
| AcquisitionFrameRate, FrameRate | Frame rate control | Indirectly — may constrain max exposure time |
| DeviceTemperature, DeviceLinkSpeed | Sensor/device status | No — read-only diagnostics |
Scoping Discovery on Feature-Rich Cameras
GenICam-compliant cameras (GigE Vision, USB3 Vision) often expose 200+ properties via the full SFNC surface. Investigating every one is impractical. Scope the discovery by skipping infrastructure property groups that do not affect image quality:
Skip:
Ptp*,Sequencer*,Counter*,Chunk*,Serial*,Action*,Timer*,Event*,DeviceLink*,Transport*Keep: properties matching the naming heuristics table above, plus any containing
Exposure,Gain,Balance,Gamma,Black,Sharp,Bright,Contrast,HDR,LUT,Bin
Report the skipped groups to the user (e.g., "Skipped 45 transport/sequencer/timing properties not relevant to image quality") so they can request deeper investigation if needed.
Safe Exploration Protocol
For properties classified as potentially quality-relevant:
Read first — get current value, type, range, and read-only status via
propinfo(src, propName)Record baseline — save the current value before any changes
Understand constraints — if bounded, note min/max; if enum, list valid values
Try a small perturbation — change by ~10% of the range (or one enum step) toward a direction that should help the diagnosed problem
Capture and measure — take a new image, run
diagnoseImageQuality, compare metricsRevert if no improvement — restore the saved baseline value
Report to user — describe what the property appears to do based on the observed metric change
% Example: investigating an unfamiliar property
propName = "BlackLevel";
info = propinfo(src, propName);
baseline = src.(propName);
fprintf("Property: %s, Type: %s, Range: [%g %g], Current: %g\n", ...
propName, info.Type, info.ConstraintValue(1), info.ConstraintValue(2), baseline);
% Try small increase
step = (info.ConstraintValue(2) - info.ConstraintValue(1)) * 0.1;
src.(propName) = baseline + step;
pause(0.5);
testImg = getsnapshot(vid);
testResults = diagnoseImageQuality(testImg);
% Compare and decide
src.(propName) = baseline; % RevertWhen to Involve the User
Ask the user before changing properties that:
Sound mode-changing or potentially destructive (TriggerMode, AcquisitionMode, PixelFormat)
Have the word "Reset" or "Default" in the name
Are enum-typed with values you don't recognize
Affect resolution or frame geometry (Width, Height, Binning, Decimation)
Properties to Leave Alone
Unless the user explicitly asks, do not modify:
TriggerMode, TriggerSource — can break acquisition entirely
PixelFormat — changing mid-session may require reconnecting
PacketSize, StreamBytesPerSecond — transport parameters, not quality
DeviceReset, UserSetLoad — destructive operations
Property Interaction Gotchas
ExposureMode=auto overrides manual Exposure: Always set mode to manual first, then adjust value
WhiteBalanceMode=auto overrides WhiteBalance: Same pattern — manual mode first
Gain amplifies noise: Increasing Gain is tempting for dark images but degrades SNR. Prefer longer Exposure when motion blur is acceptable
BacklightCompensation range varies wildly: Some cameras use 0–1 (on/off), others 0–255 (graduated). Always check range at runtime
Auto modes may take several frames to converge: After enabling auto exposure/WB, discard 5–10 frames before capturing the final image
Resolution changes may reset other properties: On some cameras, changing Resolution reverts Exposure/Gain to defaults
Preview vs snapshot:
preview(cam)shows live video and triggers auto-adjustments; a coldsnapshot(cam)may capture before auto-modes converge
Copyright 2026 The MathWorks, Inc.
Requirements and compatibility
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta
“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.
Security
No issues found by our static scan· No issues found
A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.
Attribution and licence
- Created by
- MathWorks
- Publisher
- MathWorks (Official)
- Source
- matlab/matlab-agentic-toolkit · skills-catalog/test-and-measurement/matlab-enhance-camera-image · commit 2a7f215
- Licence
- BSD 2-Clause License (redistribution allowed)
- LICENSE (added by AutoGineer from LICENSE.md)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
AutoGineer is not affiliated with or endorsed by MathWorks.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download matlab-enhance-camera-image.zip