MayaFlux 1.0.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ measure_appearance()

Kinesis::Vision::MeasureAppearanceAnalysis MayaFlux::Yantra::VisionAnalyzer::measure_appearance ( const Kinesis::Vision::VisionResult &  result,
const std::shared_ptr< Core::VKImage > &  gray,
uint32_t  w,
uint32_t  h 
)
private

MeasureAppearance's whole-frame gradient sample (region_sample.comp over result.images.sobel) and brightness histogram (otsu_histogram.comp over gray).

gray is the frame's gray image, which a sequence seeded from another lane's RgbaToGray does not produce itself, so the caller supplies it. Empty fields for whichever input image is null.

Definition at line 272 of file VisionAnalyzer.cpp.

276{
277 Kinesis::Vision::MeasureAppearanceAnalysis out;
278
279 if (result.images.sobel)
280 out.gradient = sample_full_frame(result.images.sobel, w, h);
281
282 if (gray) {
283 out.histogram = compute_histogram(gray, w, h);
284 out.mean_brightness = compute_mean_brightness(out.histogram);
285 }
286
287 return out;
288}
uint32_t h
Definition InkPress.cpp:29
std::vector< float > * out
float compute_mean_brightness(const std::array< uint32_t, 256 > &histogram)
Dispatch histogram_reduce.comp over an already-computed histogram.
Kinesis::Vision::FieldSample sample_full_frame(const std::shared_ptr< Core::VKImage > &image, uint32_t w, uint32_t h)
Dispatch region_sample.comp over the whole image (no region concept for MeasureAppearance).
std::array< uint32_t, 256 > compute_histogram(const std::shared_ptr< Core::VKImage > &image, uint32_t w, uint32_t h)
Dispatch otsu_histogram.comp over image, zeroing the buffer first.

References compute_histogram(), compute_mean_brightness(), MayaFlux::Kinesis::Vision::MeasureAppearanceAnalysis::gradient, h, MayaFlux::Kinesis::Vision::VisionResult::images, out, sample_full_frame(), and MayaFlux::Kinesis::Vision::ImageOutputs::sobel.

Referenced by assemble().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: