Statistische Bildmerkmale
In diesem Beispiel werden statistische Merkmale (Min, Max, Median, Mittelwerkt, Standardabweichung) von Bildern berechnet. Dazu werden folgende Funktionen genutzt:
Anwendung
Dieses Projekt enthält einen File Source, in den beliebige RGB-Bilder eingeladen werden können. Diese werden im Programm in Grauwertbilder konvertiert und hinsichtlich verschiedener Statistiken analysiert. Die Ergebniswerte werden ins Bild eingezeichnet und können im ADS Image Watch unter ipImageRes
betrachtet werden.
Programm
// Prepare images
hr := F_VN_ConvertColorSpace(ipImageIn, ipImageIn, TCVN_CST_RGB_TO_GRAY, hr);
hr := F_VN_CopyImage(ipImageIn, ipImageRes, hr);
// Calculate image statistics
hr := F_VN_MinPixelValue(
ipImage := ipImageIn,
aMinValue := aMin,
aPosition := aPos,
hrPrev := hr
);
hr := F_VN_MaxPixelValue(
ipImage := ipImageIn,
aMaxValue := aMax,
aPosition := aPos,
hrPrev := hr
);
hr := F_VN_ImageMedian(
ipSrcImage := ipImageIn,
aMedian := aMedian,
hrPrev := hr
);
hr := F_VN_ImageAverageStdDev(
ipSrcImage := ipImageIn,
aAverage := aAverage,
aStdDev := aStdDev,
hrPrev := hr
);
// Draw results
sText := CONCAT('Min: ', LREAL_TO_FMTSTR(aMin[0], 2, TRUE ));
hr := F_VN_PutLabel(sText, ipImageRes, nTextX, (nTextYBase + (1 * nTextYIncrement)), fFontScale, hr);
sText := CONCAT('Max: ', LREAL_TO_FMTSTR(aMax[0], 2, TRUE ));
hr := F_VN_PutLabel(sText, ipImageRes, nTextX, (nTextYBase + (2 * nTextYIncrement)), fFontScale, hr);
sText := CONCAT('Median: ', LREAL_TO_FMTSTR(aMedian[0], 2, TRUE ));
hr := F_VN_PutLabel(sText, ipImageRes, nTextX, (nTextYBase + (3 * nTextYIncrement)), fFontScale, hr);
sText := CONCAT('Average: ', LREAL_TO_FMTSTR(aAverage[0], 2, TRUE ));
hr := F_VN_PutLabel(sText, ipImageRes, nTextX, (nTextYBase + (4 * nTextYIncrement)), fFontScale, hr);
sText := CONCAT('StdDev: ', LREAL_TO_FMTSTR(aStdDev[0], 2, TRUE ));
hr := F_VN_PutLabel(sText, ipImageRes, nTextX, (nTextYBase + (5 * nTextYIncrement)), fFontScale, hr);
hr := F_VN_TransformIntoDisplayableImage(ipImageIn, ipImageInDisp, hr);
hr := F_VN_TransformIntoDisplayableImage(ipImageRes, ipImageResDisp, hr);
Für die Funktion LREAL_TO_FMTSTR
wird die SPS-Bibliothek Tc2_Utilities benötigt.