- Reviewed by Lionbridge.
Change-Id: I2bb2f3d7c726278a9759db42f2cc9ed766599369
Signed-off-by: Haesu Gwon <haesu.gwon@samsung.com>
using Tizen.Multimedia.Vision;
/// <summary>
-/// Interop APIs
+/// Interop APIs.
/// </summary>
internal static partial class Interop
{
/// <summary>
- /// Interop for media vision APIs
+ /// Interop for Media Vision APIs.
/// </summary>
internal static partial class MediaVision
{
/// <summary>
- /// Interop for barcode detector APIs
+ /// Interop for Barcode Detector APIs.
/// </summary>
internal static partial class BarcodeDetector
{
}
/// <summary>
- /// Interop for barcode generator APIs
+ /// Interop for Barcode Generator APIs.
/// </summary>
internal static partial class BarcodeGenerator
{
using Tizen.Multimedia.Vision;
/// <summary>
-/// Interop APIs
+/// Interop APIs.
/// </summary>
internal static partial class Interop
{
}
/// <summary>
- /// Interop for media vision APIs
+ /// Interop for Media Vision APIs.
/// </summary>
internal static partial class MediaVision
{
}
/// <summary>
- /// Interop for media vision source APIs
+ /// Interop for Media Vision Source APIs.
/// </summary>
internal static partial class MediaSource
{
}
/// <summary>
- /// Interop for engine configuration APIs
+ /// Interop for Engine Configuration APIs.
/// </summary>
internal static partial class EngineConfig
{
using Tizen.Multimedia.Vision;
/// <summary>
-/// Interop APIs
+/// Interop APIs.
/// </summary>
internal static partial class Interop
{
/// <summary>
- /// Interop for media vision APIs
+ /// Interop for Media Vision APIs.
/// </summary>
internal static partial class MediaVision
{
/// <summary>
- /// Interop for Face APIs
+ /// Interop for Face APIs.
/// </summary>
internal static partial class Face
{
}
/// <summary>
- /// Interop for FaceRecognitionModel APIs
+ /// Interop for FaceRecognitionModel APIs.
/// </summary>
internal static partial class FaceRecognitionModel
{
}
/// <summary>
- /// Interop for FaceTrackingModel APIs
+ /// Interop for FaceTrackingModel APIs.
/// </summary>
internal static partial class FaceTrackingModel
{
using Tizen.Multimedia.Vision;
/// <summary>
-/// Interop APIs
+/// Interop APIs.
/// </summary>
internal static partial class Interop
{
/// <summary>
- /// Interop for Media vision APIs
+ /// Interop for Media Vision APIs.
/// </summary>
internal static partial class MediaVision
{
/// <summary>
- /// Interop for Image APIs
+ /// Interop for Image APIs.
/// </summary>
internal static partial class Image
{
}
/// <summary>
- /// Interop for ImageTrackingModel APIs
+ /// Interop for ImageTrackingModel APIs.
/// </summary>
internal static partial class ImageTrackingModel
{
using Tizen.Multimedia.Vision;
/// <summary>
-/// Interop APIs
+/// Interop APIs.
/// </summary>
internal static partial class Interop
{
/// <summary>
- /// Interop for media vision APIs
+ /// Interop for Media Vision APIs.
/// </summary>
internal static partial class MediaVision
{
/// <summary>
- /// Interop for surveillance APIs
+ /// Interop for Surveillance APIs.
/// </summary>
internal static partial class Surveillance
{
}
/// <summary>
- /// The quadrangle location of detected barcode.
+ /// The quadrangle location of the detected barcode.
/// </summary>
/// <since_tizen> 3</since_tizen>
public Quadrangle Region { get; }
/// <summary>
- /// The decoded message of barcode.
+ /// The decoded message of the barcode.
/// </summary>
/// <since_tizen> 3</since_tizen>
public string Message { get; }
/// <summary>
- /// The type of detected barcode.
+ /// The type of the detected barcode.
/// </summary>
/// <since_tizen> 3</since_tizen>
public BarcodeType Type { get; }
/// Represents a configuration of <see cref="BarcodeDetector"/>.
/// </summary>
/// <seealso cref="BarcodeDetector"/>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public class BarcodeDetectionConfiguration : EngineConfiguration
{
private const string KeyAttrTarget = "MV_BARCODE_DETECT_ATTR_TARGET";
/// Initializes a new instance of the <see cref="BarcodeDetectionConfiguration"/> class.
/// </summary>
/// <exception cref="System.NotSupportedException">The feature is not supported.</exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public BarcodeDetectionConfiguration() : base("barcode_detection")
{
}
/// </summary>
/// <exception cref="System.ArgumentException"><paramref name="value"/> is not valid.</exception>
/// <exception cref="System.ObjectDisposedException">The <see cref="BarcodeDetectionConfiguration"/> already has been disposed of.</exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public BarcodeDetectionTarget Target
{
get
/// <summary>
/// Specifies the target of <see cref="BarcodeDetector"/>.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public enum BarcodeDetectionTarget
{
/// <summary>
/// 1D and 2D.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
All,
/// <summary>
/// 1D barcode only.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
Barcode1D,
/// <summary>
/// 2D barcode only.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
Barcode2D,
}
}
/// <summary>
/// Provides the ability to detect barcodes on image sources.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public static class BarcodeDetector
{
/// <summary>
- /// Detects barcodes on source and reads message from it.
+ /// Detects barcodes on the source and reads the message from it.
/// </summary>
/// <param name="source">The <see cref="MediaVisionSource"/> instance.</param>
/// <param name="roi">Region of interest - rectangular area on the source which will be used for
}
/// <summary>
- /// Detects barcodes on source and reads message from it with <see cref="BarcodeDetectionConfiguration"/>.
+ /// Detects barcodes on the source and reads the message from it with <see cref="BarcodeDetectionConfiguration"/>.
/// </summary>
/// <param name="source">The <see cref="MediaVisionSource"/> instance.</param>
/// <param name="roi">Region of interest - rectangular area on the source which will be used for
/// Represents a configuration of <see cref="BarcodeGenerator"/> instances.
/// </summary>
/// <seealso cref="BarcodeGenerator"/>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public class BarcodeGenerationConfiguration : EngineConfiguration
{
private const string KeyTextAttr = "MV_BARCODE_GENERATE_ATTR_TEXT";
/// Initializes a new instance of the <see cref="BarcodeGenerationConfiguration"/> class.
/// </summary>
/// <exception cref="System.NotSupportedException">The feature is not supported.</exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public BarcodeGenerationConfiguration() : base("barcode_generation")
{
}
/// </summary>
/// <exception cref="System.ArgumentException"><paramref name="value"/> is not valid.</exception>
/// <exception cref="ObjectDisposedException">The <see cref="BarcodeGenerationConfiguration"/> already has been disposed of.</exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public Visibility TextVisibility
{
get
/// The alpha value of the color will be ignored.
/// </remarks>
/// <exception cref="ObjectDisposedException">The <see cref="BarcodeGenerationConfiguration"/> already has been disposed of.</exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public Color ForegroundColor
{
get
/// The alpha value of the color will be ignored.
/// </remarks>
/// <exception cref="ObjectDisposedException">The <see cref="BarcodeGenerationConfiguration"/> already has been disposed of.</exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public Color BackgroundColor
{
get
{
/// <summary>
/// Provides the ability to generate barcodes and QR codes.
- /// Different encoding types <see cref="QrMode"/> , error correction codes <see cref="ErrorCorrectionLevel"/>
+ /// Different encoding types <see cref="QrMode"/>, error correction codes <see cref="ErrorCorrectionLevel"/>,
/// and code versions are supported for QRCodes.
/// </summary>
/// <seealso cref="BarcodeGenerationConfiguration"/>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public static class BarcodeGenerator
{
private const int NoneErrorCorrection = (int)ErrorCorrectionLevel.High + 1;
/// </exception>
/// <exception cref="NotSupportedException">The feature is not supported.</exception>
/// <seealso cref="QrMode"/>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public static MediaVisionSource GenerateSource(string message, QrConfiguration qrConfig)
{
return GenerateSource(message, qrConfig, null);
/// </exception>
/// <exception cref="ObjectDisposedException"><paramref name="config"/> already has been disposed of.</exception>
/// <seealso cref="QrMode"/>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public static MediaVisionSource GenerateSource(string message, QrConfiguration qrConfig,
BarcodeGenerationConfiguration config)
{
/// <paramref name="message"/> contains illegal characters.
/// </exception>
/// <exception cref="NotSupportedException">The feature is not supported.</exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public static MediaVisionSource GenerateSource(string message, BarcodeType type)
{
return GenerateSource(message, type, null);
/// </exception>
/// <exception cref="NotSupportedException">The feature is not supported.</exception>
/// <exception cref="ObjectDisposedException"><paramref name="config"/> already has been disposed of.</exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public static MediaVisionSource GenerateSource(string message, BarcodeType type,
BarcodeGenerationConfiguration config)
{
/// <exception cref="UnauthorizedAccessException">No permission to write a file.</exception>
/// <exception cref="NotSupportedException">The feature is not supported.</exception>
/// <seealso cref="QrMode"/>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public static void GenerateImage(string message, QrConfiguration qrConfig,
BarcodeImageConfiguration imageConfig)
{
/// <see cref="BarcodeGenerationConfiguration.TextVisibility"/> is the <see cref="Visibility.Visible"/>.
/// </exception>
/// <exception cref="ObjectDisposedException"><paramref name="config"/> already has been disposed of.</exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public static void GenerateImage(string message, QrConfiguration qrConfig,
BarcodeImageConfiguration imageConfig, BarcodeGenerationConfiguration config)
{
/// </exception>
/// <exception cref="UnauthorizedAccessException">No permission to write a file.</exception>
/// <exception cref="NotSupportedException">The feature is not supported.</exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public static void GenerateImage(string message, BarcodeType type, BarcodeImageConfiguration imageConfig)
{
GenerateImage(message, type, imageConfig, null);
/// <exception cref="UnauthorizedAccessException">No permission to write a file.</exception>
/// <exception cref="NotSupportedException">The feature is not supported.</exception>
/// <exception cref="ObjectDisposedException"><paramref name="config"/> already has been disposed of.</exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public static void GenerateImage(string message,
BarcodeType type, BarcodeImageConfiguration imageConfig, BarcodeGenerationConfiguration config)
{
/// <summary>
/// Represents a configuration for the image to be generated by <see cref="BarcodeGenerator"/>.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public class BarcodeImageConfiguration
{
/// <summary>
/// Initializes a new instance of the <see cref="BarcodeImageConfiguration"/> class.
/// </summary>
/// <remarks>
- /// The mediastorage privilege(http://tizen.org/privilege/mediastorage) is needed if image path is relevant to media storage.\n
- /// The externalstorage privilege(http://tizen.org/privilege/externalstorage) is needed if image path is relevant to external storage.
+ /// The mediastorage privilege (http://tizen.org/privilege/mediastorage) is needed if the image path is relevant to media storage.\n
+ /// The externalstorage privilege (http://tizen.org/privilege/externalstorage) is needed if the image path is relevant to external storage.
/// </remarks>
/// <param name="size">The <see cref="Size"/> of the generated image.</param>
/// <param name="path">The path to the file to be generated.</param>
/// <code>
/// BarcodeImageConfiguration imageConfig = new BarcodeImageConfiguration(new Size(500, 400), "/opt/usr/test-barcode-generate-new", BarcodeImageFormat.JPG);
/// </code>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public BarcodeImageConfiguration(Size size, string path, BarcodeImageFormat imageFormat)
{
if (size.Width <= 0)
/// Initializes a new instance of the <see cref="BarcodeImageConfiguration"/> class.
/// </summary>
/// <remarks>
- /// The mediastorage privilege(http://tizen.org/privilege/mediastorage) is needed if image path is relevant to media storage.\n
- /// The externalstorage privilege(http://tizen.org/privilege/externalstorage) is needed if image path is relevant to external storage.
+ /// The mediastorage privilege (http://tizen.org/privilege/mediastorage) is needed if the image path is relevant to media storage.\n
+ /// The externalstorage privilege (http://tizen.org/privilege/externalstorage) is needed if the image path is relevant to external storage.
/// </remarks>
/// <param name="width">The width of the image to be generated.</param>
/// <param name="height">The height of the image to be generated.</param>
/// <code>
/// BarcodeImageConfiguration imageConfig = new BarcodeImageConfiguration(500, 400, "/opt/usr/test-barcode-generate-new", BarcodeImageFormat.JPG);
/// </code>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public BarcodeImageConfiguration(int width, int height, string path, BarcodeImageFormat imageFormat)
: this(new Size(width, height), path, imageFormat)
{
/// <summary>
/// Gets the size of the image.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public Size Size { get; }
/// <summary>
/// Gets the width of the image.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public int Width => Size.Width;
/// <summary>
/// Gets the height of the image.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public int Height => Size.Height;
/// <summary>
/// Gets the path to the file that has to be generated.
/// </summary>
/// <remarks>
- /// The mediastorage privilege http://tizen.org/privilege/mediastorage is needed if image path is relevant to media storage.\n
- /// The externalstorage privilege http://tizen.org/privilege/externalstorage is needed if image path is relevant to external storage.
+ /// The mediastorage privilege (http://tizen.org/privilege/mediastorage) is needed if the image path is relevant to media storage.\n
+ /// The externalstorage privilege (http://tizen.org/privilege/externalstorage) is needed if the image path is relevant to external storage.
/// </remarks>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public string Path { get; }
/// <summary>
/// Gets the format of the output image.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public BarcodeImageFormat Format { get; }
}
}
namespace Tizen.Multimedia.Vision
{
/// <summary>
- /// Specifies supported image formats for <see cref="BarcodeGenerator"/>
+ /// Specifies the supported image formats for <see cref="BarcodeGenerator"/>
/// </summary>
/// <seealso cref="BarcodeImageConfiguration"/>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public enum BarcodeImageFormat
{
/// <summary>
/// BMP image format.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
Bmp,
/// <summary>
/// JPEG image format.
/// <summary>
/// PNG image format.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
Png
}
}
/// Specifies the supported barcode types.
/// </summary>
/// <remarks>
- /// QR codes (versions 1 to 40) and set of 1D barcodes are supported
+ /// QR codes (versions 1 to 40) and set of 1D barcodes are supported.
/// </remarks>
/// <seealso cref="BarcodeDetector"/>
/// <seealso cref="BarcodeGenerator"/>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public enum BarcodeType
{
/// <summary>
/// 2D barcode - Quick Response code.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
QR,
/// <summary>
/// 1D barcode - Universal Product Code with 12-digit.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
UpcA,
/// <summary>
/// 1D barcode - Universal Product Code with 6-digit.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
UpcE,
/// <summary>
/// 1D barcode - International Article Number with 8-digit.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
Ean8,
/// <summary>
/// 1D barcode - International Article Number with 13-digit.
/// <summary>
/// 1D barcode - Code 128.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
Code128,
/// <summary>
/// 1D barcode - Code 39.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
Code39,
/// <summary>
/// 1D barcode - Interleaved Two of Five.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
I25
}
}
/// <summary>
/// A base class for configuration classes.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public abstract class EngineConfiguration : IDisposable
{
private IntPtr _handle = IntPtr.Zero;
/// Releases the resources used by the <see cref="EngineConfiguration"/> object.
/// </summary>
/// <param name="disposing">
- /// true to release both managed and unmanaged resources; false to release only unmanaged resources.
+ /// true to release both managed and unmanaged resources, otherwise false to release only unmanaged resources.
/// </param>
protected virtual void Dispose(bool disposing)
{
namespace Tizen.Multimedia.Vision
{
/// <summary>
- /// Specifies the supported QR code error correction level.
+ /// Specifies the supported QR code error correction levels.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public enum ErrorCorrectionLevel
{
/// <summary>
/// Recovery up to 7% losses.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
Low,
/// <summary>
/// Recovery up to 15% losses.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
Medium,
/// <summary>
/// Recovery up to 25% losses.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
Quartile,
/// <summary>
/// Recovery up to 30% losses.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
High
}
}
/// <summary>
/// Specifies the eyes state types.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public enum EyeCondition
{
/// <summary>
/// Eyes are open.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
Open,
/// <summary>
/// Eyes are closed.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
Closed,
/// <summary>
/// The eyes condition wasn't determined.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
NotFound
}
}
/// <summary>
/// Represents a configuration of <see cref="FaceDetector"/> instances.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public class FaceDetectionConfiguration : EngineConfiguration
{
private const string KeyModelFilePath = "MV_FACE_DETECTION_MODEL_FILE_PATH";
/// Gets or sets the face detection haarcascade xml file for face detection.
/// </summary>
/// <exception cref="ArgumentNullException"><paramref name="value"/> is null.</exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public string ModelFilePath
{
get
/// <summary>
- /// Gets or sets minimum height of face which will be detected.
+ /// Gets or sets the minimum height of a face which will be detected.
/// </summary>
/// <remarks>
- /// Default value is null (all detected faces will be applied), can be changed to specify the minimum face height.
+ /// Default value is null (all detected faces will be applied), which can be changed to specify the minimum face height.
/// </remarks>
/// <exception cref="ArgumentOutOfRangeException"><paramref name="value"/> is less than zero.</exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public int? MinHeight
{
get
}
/// <summary>
- /// Gets or sets minimum width of face which will be detected.
+ /// Gets or sets the minimum width of a face which will be detected.
/// </summary>
/// <remarks>
- /// Default value is null (all detected faces will be applied), can be changed to specify the minimum face width.
+ /// Default value is null (all detected faces will be applied), which can be changed to specify the minimum face width.
/// </remarks>
/// <exception cref="ArgumentOutOfRangeException"><paramref name="value"/> is less than zero.</exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public int? MinWidth
{
get
/// Gets or sets the roi of the face detection.
/// </summary>
/// <remarks>
- /// Default value is null (the roi will be a full image) can be changed to specify the roi for face detection.
+ /// Default value is null (the roi will be a full image), which can be changed to specify the roi for face detection.
/// </remarks>
/// <exception cref="ArgumentOutOfRangeException">
/// The width of <paramref name="value"/> is less than or equal to zero.\n
/// -or-\n
/// The y position of <paramref name="value"/> is less than zero.\n
/// </exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public Rectangle? Roi
{
get
/// <summary>
/// Provides the ability to detect faces on image sources.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public static class FaceDetector
{
/// -or-\n
/// The format of <paramref name="source"/> is not supported.
/// </exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public static async Task<Rectangle[]> DetectAsync(MediaVisionSource source)
{
return await DetectAsync(source, null);
/// <returns>A task that represents the asynchronous detect operation.</returns>
/// <exception cref="ArgumentNullException"><paramref name="source"/> is null.</exception>
/// <exception cref="NotSupportedException">The feature is not supported.</exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public static async Task<Rectangle[]> DetectAsync(MediaVisionSource source,
FaceDetectionConfiguration config)
{
/// <summary>
/// Represents a configuration of <see cref="FaceRecognizer"/> instances.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public class FaceRecognitionConfiguration : EngineConfiguration
{
private const string KeyModelType = "MV_FACE_RECOGNITION_MODEL_TYPE";
/// Initializes a new instance of the <see cref="FaceRecognitionConfiguration"/> class.
/// </summary>
/// <exception cref="System.NotSupportedException">The feature is not supported.</exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public FaceRecognitionConfiguration() : base("face_recognition")
{
}
/// Default value is <see cref="FaceRecognitionModelType.Lbph"/>.
/// </summary>
/// <exception cref="System.ArgumentException"><paramref name="value"/> is not valid.</exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public FaceRecognitionModelType ModelType
{
get
/// <summary>
/// Represents the face recognition model interface.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public class FaceRecognitionModel : IDisposable
{
private IntPtr _handle = IntPtr.Zero;
/// Initializes a new instance of the <see cref="FaceRecognitionModel"/> class.
/// </summary>
/// <exception cref="NotSupportedException">The feature is not supported.</exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public FaceRecognitionModel()
{
InteropModel.Create(out _handle).Validate("Failed to create FaceRecognitionModel");
/// Initializes a new instance of the <see cref="FaceRecognitionModel"/> class with the specified path.
/// </summary>
/// <remarks>
- /// Models have been saved by <see cref="Save()"/> can be loaded.
+ /// Models saved by <see cref="Save()"/> can be loaded.
/// </remarks>
/// <param name="modelPath">Path to the model to load.</param>
/// <exception cref="ArgumentNullException"><paramref name="modelPath"/> is null.</exception>
/// </exception>
/// <exception cref="UnauthorizedAccessException">No permission to access the specified file.</exception>
/// <seealso cref="Save(string)"/>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public FaceRecognitionModel(string modelPath)
{
if (modelPath == null)
/// <exception cref="UnauthorizedAccessException">No permission to write to the specified path.</exception>
/// <exception cref="ObjectDisposedException">The <see cref="FaceRecognitionModel"/> has already been disposed of.</exception>
/// <exception cref="DirectoryNotFoundException">The directory for <paramref name="path"/> does not exist.</exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public void Save(string path)
{
if (path == null)
}
/// <summary>
- /// Adds face image example to be used for face recognition model learning.
+ /// Adds the face image example to be used for face recognition model learning.
/// </summary>
/// <param name="source">The <see cref="MediaVisionSource"/> that contains face image.</param>
/// <param name="label">The label that identifies face for which example is adding.
/// <paramref name="source"/> has already been dispose of.
/// </exception>
/// <seealso cref="Learn(FaceRecognitionConfiguration)"/>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public void Add(MediaVisionSource source, int label)
{
if (source == null)
}
/// <summary>
- /// Adds face image example to be used for face recognition model learning.
+ /// Adds the face image example to be used for face recognition model learning.
/// </summary>
/// <param name="source">The <see cref="MediaVisionSource"/> that contains face image.</param>
/// <param name="label">The label that identifies face for which example is adding.
/// <paramref name="source"/> has already been dispose of.
/// </exception>
/// <seealso cref="Learn(FaceRecognitionConfiguration)"/>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public void Add(MediaVisionSource source, int label, Rectangle area)
{
if (source == null)
/// <returns>true if the examples are successfully removed; otherwise, false if there is no example labeled with the specified label.</returns>
/// <seealso cref="Add(MediaVisionSource, int)"/>
/// <seealso cref="Add(MediaVisionSource, int, Rectangle)"/>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public bool Remove(int label)
{
var ret = InteropModel.Remove(Handle, ref label);
/// Removes all face examples.
/// </summary>
/// <exception cref="ObjectDisposedException">The <see cref="FaceRecognitionModel"/> has already been disposed of.</exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public void Reset()
{
InteropModel.Reset(Handle).Validate("Failed to reset image example");
/// <summary>
- /// Learns face recognition model.
+ /// Learns the face recognition model.
/// </summary>
/// <remarks>
- /// Before you start learning process, face recognition models has to be filled with training data - face image examples.
- /// These examples has to be provided by <see cref="Add(MediaVisionSource, int)"/> or <see cref="Add(MediaVisionSource, int, Rectangle)"/>.
- /// Recognition accuracy is usually increased when the different examples of the identical face are added more and more.
+ /// Before you start the learning process, face recognition models have to be filled with the training data - face image examples.
+ /// These examples have to be provided by <see cref="Add(MediaVisionSource, int)"/> or <see cref="Add(MediaVisionSource, int, Rectangle)"/>.
+ /// Recognition accuracy is usually increased when the different examples of the identical faces are added more and more.
/// But it depends on the used learning algorithm.
/// </remarks>
/// <exception cref="ObjectDisposedException">The <see cref="FaceRecognitionModel"/> has already been disposed of.</exception>
/// <exception cref="InvalidOperationException">No examples added.</exception>
/// <seealso cref="Add(MediaVisionSource, int)"/>
/// <seealso cref="Add(MediaVisionSource, int, Rectangle)"/>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public void Learn()
{
Learn(null);
}
/// <summary>
- /// Learns face recognition model with <see cref="FaceRecognitionConfiguration"/>.
+ /// Learns the face recognition model with <see cref="FaceRecognitionConfiguration"/>.
/// </summary>
/// <remarks>
- /// Before you start learning process, face recognition models has to be filled with training data - face image examples.
- /// These examples has to be provided by <see cref="Add(MediaVisionSource, int)"/> or <see cref="Add(MediaVisionSource, int, Rectangle)"/>.
- /// Recognition accuracy is usually increased when the different examples of the identical face are added more and more.
+ /// Before you start the learning process, face recognition models have to be filled with the training data - face image examples.
+ /// These examples have to be provided by <see cref="Add(MediaVisionSource, int)"/> or <see cref="Add(MediaVisionSource, int, Rectangle)"/>.
+ /// Recognition accuracy is usually increased when the different examples of the identical faces are added more and more.
/// But it depends on the used learning algorithm.
/// </remarks>
/// <param name="config">The configuration used for learning of the recognition models. This value can be null.</param>
/// <exception cref="InvalidOperationException">No examples added.</exception>
/// <seealso cref="Add(MediaVisionSource, int)"/>
/// <seealso cref="Add(MediaVisionSource, int, Rectangle)"/>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public void Learn(FaceRecognitionConfiguration config)
{
InteropModel.Learn(EngineConfiguration.GetHandle(config), Handle).
}
/// <summary>
- /// Releases all resources used by the <see cref="FaceRecognitionModel"/> object.
+ /// Releases all the resources used by the <see cref="FaceRecognitionModel"/> object.
/// </summary>
public void Dispose()
{
/// Releases the resources used by the <see cref="FaceRecognitionModel"/> object.
/// </summary>
/// <param name="disposing">
- /// true to release both managed and unmanaged resources; false to release only unmanaged resources.
+ /// true to release both managed and unmanaged resources; otherwise false to release only unmanaged resources.
/// </param>
protected virtual void Dispose(bool disposing)
{
/// <summary>
/// Specifies the face recognition model learning algorithms.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public enum FaceRecognitionModelType
{
/// <summary>
/// Eigenfaces.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
EigenFaces = 1,
/// <summary>
/// Fisherfaces.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
FisherFaces,
/// <summary>
/// Local Binary Patterns Histograms (LBPH); The default type.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
Lbph
}
}
namespace Tizen.Multimedia.Vision
{
/// <summary>
- /// Represents result of <see cref="FaceRecognizer"/> operations.
+ /// Represents the result of <see cref="FaceRecognizer"/> operations.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public class FaceRecognitionResult
{
internal FaceRecognitionResult(bool recognized, double confidence, int label, Rectangle? area)
/// <summary>
/// Gets the value indicating the recognition is successful.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public bool Success { get; }
/// <summary>
/// Gets the label of the recognized face.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public int Label { get; }
/// <summary>
/// Gets the location of the recognized face.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public Rectangle? Area { get; }
/// <summary>
/// threshold for this value can be high (0.85-0.95). If model was learned for small amount of examples,
/// then threshold can be reduced (0.5-0.85).
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public double Confidence { get; }
}
}
namespace Tizen.Multimedia.Vision
{
/// <summary>
- /// Provides the ability to recognize faces, face expressions and eye condition on image sources.
+ /// Provides the ability to recognize faces, face expressions, and eye condition on image sources.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public static class FaceRecognizer
{
/// <exception cref="NotSupportedException">The feature is not supported.</exception>
/// <exception cref="ObjectDisposedException"><paramref name="source"/> has already been disposed of.</exception>
/// <exception cref="InvalidOperationException"><paramref name="recognitionModel"/> is untrained model.</exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public static async Task<FaceRecognitionResult> RecognizeAsync(MediaVisionSource source,
FaceRecognitionModel recognitionModel)
{
/// <exception cref="NotSupportedException">The feature is not supported.</exception>
/// <exception cref="ObjectDisposedException"><paramref name="source"/> has already been disposed of.</exception>
/// <exception cref="InvalidOperationException"><paramref name="recognitionModel"/> is untrained model.</exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public static async Task<FaceRecognitionResult> RecognizeAsync(MediaVisionSource source,
FaceRecognitionModel recognitionModel, Rectangle bound)
{
/// <paramref name="config"/> has already been disposed of.
/// </exception>
/// <exception cref="InvalidOperationException"><paramref name="recognitionModel"/> is untrained model.</exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public static async Task<FaceRecognitionResult> RecognizeAsync(MediaVisionSource source,
FaceRecognitionModel recognitionModel, FaceRecognitionConfiguration config)
{
/// <summary>
- /// Performs face recognition on the source with <see cref="FaceRecognitionModel"/>, <see cref="FaceRecognitionConfiguration"/>
+ /// Performs face recognition on the source with <see cref="FaceRecognitionModel"/>, <see cref="FaceRecognitionConfiguration"/>
/// and a bounding box.
/// </summary>
/// <param name="source">The <see cref="MediaVisionSource"/> of the media to recognize faces for.</param>
/// <paramref name="config"/> has already been disposed of.
/// </exception>
/// <exception cref="InvalidOperationException"><paramref name="recognitionModel"/> is untrained model.</exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public static async Task<FaceRecognitionResult> RecognizeAsync(MediaVisionSource source,
FaceRecognitionModel recognitionModel, Rectangle bound, FaceRecognitionConfiguration config)
{
/// <exception cref="ArgumentNullException"><paramref name="source"/> is null.</exception>
/// <exception cref="ObjectDisposedException"><paramref name="source"/> has already been disposed of.</exception>
/// <exception cref="NotSupportedException">The feature is not supported.</exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public static async Task<EyeCondition> RecognizeEyeConditionAsync(MediaVisionSource source,
Rectangle bound)
{
}
/// <summary>
- /// Determines eye-blink condition on media source.
+ /// Determines eye-blink condition on the media source.
/// </summary>
/// <param name="source">The source of the media to recognize eye-blink condition for.</param>
/// <param name="bound">The bounding the face at the source.</param>
/// <paramref name="config"/> has already been disposed of.
/// </exception>
/// <exception cref="NotSupportedException">The feature is not supported.</exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public static async Task<EyeCondition> RecognizeEyeConditionAsync(MediaVisionSource source,
Rectangle bound, FaceRecognitionConfiguration config)
{
/// <exception cref="ArgumentNullException"><paramref name="source"/> is null.</exception>
/// <exception cref="ObjectDisposedException"><paramref name="source"/> has already been disposed of.</exception>
/// <exception cref="NotSupportedException">The feature is not supported.</exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public static async Task<FacialExpression> RecognizeFacialExpressionAsync(MediaVisionSource source,
Rectangle bound)
{
/// <paramref name="config"/> has already been disposed of.
/// </exception>
/// <exception cref="NotSupportedException">The feature is not supported.</exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public static async Task<FacialExpression> RecognizeFacialExpressionAsync(MediaVisionSource source,
Rectangle bound, FaceRecognitionConfiguration config)
{
/// <summary>
/// Provides the ability to track faces on image sources.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public static class FaceTracker
{
/// </summary>
/// <param name="source">The source of the media to recognize face for.</param>
/// <param name="trackingModel">The model will be used for tracking.</param>
- /// <param name="doLearn">The value indicating whether model learning while tracking. If it is true then model will try to learn
- /// (if it supports learning feature), otherwise model will be not learned during the invoking tracking iteration.
+ /// <param name="doLearn">The value indicating whether model learning while tracking. If it is true, then the model will try to learn
+ /// (if it supports learning feature), otherwise the model will be not learned during the invoking tracking iteration.
/// Learning process improves tracking correctness, but can decrease tracking performance.</param>
/// <returns>A task that represents the asynchronous tracking operation.</returns>
/// <exception cref="ArgumentNullException">
/// </exception>
/// <exception cref="NotSupportedException">The feature is not supported.</exception>
/// <exception cref="InvalidOperationException"><paramref name="trackingModel"/> is not prepared.</exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public static async Task<FaceTrackingResult> TrackAsync(MediaVisionSource source,
FaceTrackingModel trackingModel, bool doLearn)
{
namespace Tizen.Multimedia.Vision
{
/// <summary>
- /// Represents face tracking model.
+ /// Represents the face tracking model.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public class FaceTrackingModel : IDisposable
{
private IntPtr _handle = IntPtr.Zero;
/// Initializes a new instance of the <see cref="FaceTrackingModel"/> class.
/// </summary>
/// <exception cref="NotSupportedException">The feature is not supported.</exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public FaceTrackingModel()
{
InteropModel.Create(out _handle).Validate("Failed to create FaceTrackingModel.");
/// Initializes a new instance of the <see cref="FaceTrackingModel"/> class with the specified path.
/// </summary>
/// <remarks>
- /// Models has been saved by <see cref="Save()"/> can be loaded.
+ /// Models saved by <see cref="Save()"/> can be loaded.
/// </remarks>
/// <param name="modelPath">Path to the model to load.</param>
/// <exception cref="ArgumentNullException"><paramref name="modelPath"/> is null.</exception>
/// </exception>
/// <exception cref="UnauthorizedAccessException">No permission to access the specified file.</exception>
/// <seealso cref="Save()"/>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public FaceTrackingModel(string modelPath)
{
if (modelPath == null)
}
/// <summary>
- /// Initializes tracking model by the location of the face to be tracked.
+ /// Initializes the tracking model by the location of the face to be tracked.
///
- /// It is usually called once after tracking model is created and each time before tracking
- /// is started for the new sequence of sources which is not the direct continuation of
- /// the sequence for which tracking has been performed before. But it is allowed to call it
+ /// It is usually called once after the tracking model is created, and each time before tracking
+ /// is started for the new sequence of sources, which is not the direct continuation of
+ /// the sequence for which tracking has been performed before. But, it is allowed to call it
/// between tracking sessions to allow Media Vision start to track more accurately.
/// </summary>
/// <remarks>
/// -or-\n
/// <paramref name="source"/> has already bean disposed of.
/// </exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public void Prepare(MediaVisionSource source, Quadrangle region)
{
if (source == null)
/// <exception cref="UnauthorizedAccessException">No permission to write to the specified path.</exception>
/// <exception cref="ObjectDisposedException">The <see cref="FaceRecognitionModel"/> has already been disposed of.</exception>
/// <exception cref="DirectoryNotFoundException">The directory for <paramref name="path"/> does not exist.</exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public void Save(string path)
{
if (path == null)
}
/// <summary>
- /// Releases all resources used by the <see cref="FaceTrackingModel"/> object.
+ /// Releases all the resources used by the <see cref="FaceTrackingModel"/> object.
/// </summary>
public void Dispose()
{
/// Releases the resources used by the <see cref="FaceTrackingModel"/> object.
/// </summary>
/// <param name="disposing">
- /// true to release both managed and unmanaged resources; false to release only unmanaged resources.
+ /// true to release both managed and unmanaged resources; otherwise false to release only unmanaged resources.
/// </param>
protected virtual void Dispose(bool disposing)
{
namespace Tizen.Multimedia.Vision
{
/// <summary>
- /// Represents result of face tracking operation.
+ /// Represents the result of face tracking operation.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public class FaceTrackingResult
{
internal FaceTrackingResult(bool success, double confidence, Quadrangle region)
public bool Success { get; }
/// <summary>
- /// Gets the region which determines new position of the tracked face on the source.
+ /// Gets the region which determines the new position of the tracked face on the source.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public Quadrangle Region { get; }
/// <summary>
- /// The confidence of the tracking model that new location of the face was determined correctly
- /// (value from 0.0 to 1.0). If no location was determined during last track iteration, then value is 0.0.
+ /// The confidence of the tracking model that a new location of the face was determined correctly
+ /// (value from 0.0 to 1.0). If no location was determined during the last track iteration, then the value is 0.0.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public double Confidence { get; }
}
}
/// <summary>
/// Specifies the expression types for faces.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public enum FacialExpression
{
/// <summary>
/// Unknown face expression.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
Unknown,
/// <summary>
/// Face expression is neutral.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
Neutral,
/// <summary>
/// Face expression is smiling.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
Smile,
/// <summary>
/// Face expression is sadness.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
Sadness,
/// <summary>
/// Face expression is surprise.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
Surprise,
/// <summary>
/// Face expression is anger.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
Anger,
/// <summary>
/// Face expression is fear.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
Fear,
/// <summary>
/// Face expression is disgust.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
Disgust
}
}
/// <summary>
/// Represents a configuration of fill operations of <see cref="ImageObject"/> instances.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public class ImageFillConfiguration : EngineConfiguration
{
private const string KeyScaleFactor = "MV_IMAGE_RECOGNITION_OBJECT_SCALE_FACTOR";
/// <summary>
/// A read-only field that represents the default value of <see cref="ObjectScaleFactor"/>.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public static readonly double DefaultScaleFactor = 1.2;
/// <summary>
/// Initializes a new instance of the <see cref="ImageFillConfiguration"/> class.
/// </summary>
/// <exception cref="System.NotSupportedException">The feature is not supported.</exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public ImageFillConfiguration() : base("image_recognition")
{
}
/// The default value is 1.2.
/// </summary>
/// <exception cref="ObjectDisposedException">The <see cref="ImageFillConfiguration"/> already has been disposed of.</exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public double ObjectScaleFactor
{
get
/// The default value is 1000.
/// </summary>
/// <exception cref="ObjectDisposedException">The <see cref="ImageFillConfiguration"/> already has been disposed of.</exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public int ObjectMaxKeyPoints
{
get
/// <summary>
/// Represents an image object.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public class ImageObject : IDisposable
{
private IntPtr _handle = IntPtr.Zero;
/// Initializes a new instance of the <see cref="ImageObject"/> class.
/// </summary>
/// <exception cref="NotSupportedException">The feature is not supported.</exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public ImageObject()
{
InteropImage.Create(out _handle).Validate("Failed to create image object");
/// Initializes a new instance of the <see cref="ImageObject"/> class from the specified file.
/// </summary>
/// <remarks>
- /// ImageObject has been saved by <see cref="Save(string)"/> can be loaded.
+ /// ImageObject has been saved by <see cref="Save()"/> can be loaded.
/// </remarks>
/// <param name="path">Path to the image object to load.</param>
/// <exception cref="ArgumentNullException"><paramref name="path"/> is null.</exception>
/// </exception>
/// <exception cref="UnauthorizedAccessException">No permission to access the specified file.</exception>
/// <seealso cref="Save(string)"/>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public ImageObject(string path)
{
if (path == null)
/// <seealso cref="Fill(MediaVisionSource, ImageFillConfiguration)"/>
/// <seealso cref="Fill(MediaVisionSource, Rectangle)"/>
/// <seealso cref="Fill(MediaVisionSource, ImageFillConfiguration, Rectangle)"/>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public double RecognitionRate
{
get
/// </returns>
/// <exception cref="ObjectDisposedException">The <see cref="ImageObject"/> has already been disposed of.</exception>
/// <seealso cref="SetLabel(int)"/>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public int? GetLabel()
{
var ret = InteropImage.GetLabel(Handle, out var label);
/// Sets the label for the <see cref="ImageObject"/>.
/// </summary>
/// <seealso cref="GetLabel"/>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public void SetLabel(int label)
{
InteropImage.SetLabel(Handle, label).Validate("Failed to set label");
/// -or-\n
/// <paramref name="source"/> has already been disposed of.
/// </exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public void Fill(MediaVisionSource source)
{
InvokeFill(source, null, null);
/// -or-\n
/// <paramref name="config"/> has already been disposed of.
/// </exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public void Fill(MediaVisionSource source, ImageFillConfiguration config)
{
InvokeFill(source, config, null);
/// -or-\n
/// <paramref name="source"/> has already been disposed of.\n
/// </exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public void Fill(MediaVisionSource source, Rectangle rect)
{
InvokeFill(source, null, rect);
/// -or-\n
/// <paramref name="config"/> has already been disposed of.
/// </exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public void Fill(MediaVisionSource source, ImageFillConfiguration config, Rectangle rect)
{
InvokeFill(source, config, rect);
/// <exception cref="UnauthorizedAccessException">No permission to write to the specified path.</exception>
/// <exception cref="ObjectDisposedException">The <see cref="FaceRecognitionModel"/> has already been disposed of.</exception>
/// <exception cref="DirectoryNotFoundException">The directory for <paramref name="path"/> does not exist.</exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public void Save(string path)
{
if (path == null)
#region IDisposable-support
/// <summary>
- /// Releases all resources used by the <see cref="ImageObject"/> object.
+ /// Releases all the resources used by the <see cref="ImageObject"/> object.
/// </summary>
public void Dispose()
{
/// Releases the resources used by the <see cref="ImageObject"/> object.
/// </summary>
/// <param name="disposing">
- /// true to release both managed and unmanaged resources; false to release only unmanaged resources.
+ /// true to release both managed and unmanaged resources; otherwise false to release only unmanaged resources.
/// </param>
protected virtual void Dispose(bool disposing)
{
/// <summary>
/// Represents a configuration of <see cref="ImageRecognizer"/>.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public class ImageRecognitionConfiguration : EngineConfiguration
{
private const string KeySceneScaleFactor = "MV_IMAGE_RECOGNITION_SCENE_SCALE_FACTOR";
/// <summary>
/// A read-only field that represents the default value of <see cref="KeySceneScaleFactor"/>.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public static readonly double DefaultSceneScaleFactor = 1.2;
/// <summary>
/// A read-only field that represents the default value of <see cref="SceneMaxKeyPoints"/>.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public static readonly int DefaultSceneMaxKeypoints = 5000;
/// <summary>
/// A read-only field that represents the default value of <see cref="MinKeyPointMatches"/>.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public static readonly int DefaultMinKeyPointMatches = 30;
/// <summary>
/// A read-only field that represents the default value of <see cref="RequiredMatchingPart"/>.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public static readonly double DefaultRequiredMatchPart = 0.05;
/// <summary>
/// A read-only field that represents the default value of <see cref="TolerantPartMatchError"/>.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public static readonly double DefaultTolerantPartMatchError = 0.1;
/// <summary>
/// Initializes a new instance of the <see cref="ImageRecognitionConfiguration"/> class.
/// </summary>
/// <exception cref="NotSupportedException">The feature is not supported.</exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public ImageRecognitionConfiguration() : base("image_recognition")
{
}
/// The default is 1.2.
/// </value>
/// <exception cref="ObjectDisposedException">The <see cref="ImageRecognitionConfiguration"/> already has been disposed of.</exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public double SceneScaleFactor
{
get
/// </value>
/// <exception cref="ObjectDisposedException">The <see cref="ImageRecognitionConfiguration"/> already has been disposed of.</exception>
/// <exception cref="ArgumentOutOfRangeException"><paramref name="value"/> is less than zero.</exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public int SceneMaxKeyPoints
{
get
/// </value>
/// <exception cref="ObjectDisposedException">The <see cref="ImageRecognitionConfiguration"/> already has been disposed of.</exception>
/// <exception cref="ArgumentOutOfRangeException"><paramref name="value"/> is less than zero.</exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public int MinKeyPointMatches
{
get
/// Gets or sets the required matching part for the image recognition.
/// To recognize occluded or hidden an image by other images, required relative part of the matches in respect to the total
/// amount of matching keypoints required for image recognition. Too low value will result in unsustainable behavior,
- /// but effect of object overlapping will be reduced.
+ /// but the effect of object overlapping will be reduced.
/// </summary>
/// <value>
/// The value indicating required relative part of the matches; can be from 0 to 1, inclusive.
/// -or-\n
/// <paramref name="value"/> is greater than one.
/// </exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public double RequiredMatchingPart
{
get
/// <summary>
/// Represents a result of RecognizeAsync operations of <see cref="ImageRecognizer"/>.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public class ImageRecognitionResult
{
/// <summary>
/// The region of recognized image object on the source image.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public Quadrangle Region { get; }
/// <summary>
/// <summary>
/// Provides the ability to recognize images on image sources.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public static class ImageRecognizer
{
/// <summary>
/// <exception cref="ArgumentException"><paramref name="imageObjects"/> has no elements.(The length is zero.)</exception>
/// <exception cref="NotSupportedException">The feature is not supported.</exception>
/// <exception cref="ObjectDisposedException"><paramref name="source"/> has already been disposed of.</exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public static async Task<IEnumerable<ImageRecognitionResult>> RecognizeAsync(
MediaVisionSource source, ImageObject[] imageObjects)
{
/// -or-\n
/// <paramref name="config"/> has already been disposed of.
/// </exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public static async Task<IEnumerable<ImageRecognitionResult>> RecognizeAsync(MediaVisionSource source,
ImageObject[] imageObjects, ImageRecognitionConfiguration config)
{
/// <summary>
/// Provides the ability to track images on image sources.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public static class ImageTracker
{
/// <summary>
/// Tracks the given image tracking model on the current frame.
/// </summary>
- /// <param name="source">The current image of sequence where image tracking model will be tracked.</param>
+ /// <param name="source">The current image of sequence where the image tracking model will be tracked.</param>
/// <param name="trackingModel">The image tracking model which processed as target of tracking.</param>
/// <returns>A task that represents the asynchronous tracking operation.</returns>
/// <exception cref="ArgumentNullException">
/// </exception>
/// <exception cref="ArgumentException"><paramref name="trackingModel"/> has no target.</exception>
/// <seealso cref="ImageTrackingModel.SetTarget(ImageObject)"/>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public static async Task<Quadrangle> TrackAsync(MediaVisionSource source,
ImageTrackingModel trackingModel)
{
/// <summary>
/// Tracks the given image tracking model on the current frame and <see cref="ImageTrackingConfiguration"/>.
/// </summary>
- /// <param name="source">The current image of sequence where image tracking model will be tracked.</param>
+ /// <param name="source">The current image of sequence where the image tracking model will be tracked.</param>
/// <param name="trackingModel">The image tracking model which processed as target of tracking.</param>
/// <param name="config">The configuration used for tracking. This value can be null.</param>
/// <returns>A task that represents the asynchronous tracking operation.</returns>
/// </exception>
/// <exception cref="ArgumentException"><paramref name="trackingModel"/> has no target.</exception>
/// <seealso cref="ImageTrackingModel.SetTarget(ImageObject)"/>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public static async Task<Quadrangle> TrackAsync(MediaVisionSource source,
ImageTrackingModel trackingModel, ImageTrackingConfiguration config)
{
/// <summary>
/// Represents a configuration of <see cref="ImageTracker"/>.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public class ImageTrackingConfiguration : ImageRecognitionConfiguration
{
private const string KeyHistoryAmount = "MV_IMAGE_TRACKING_HISTORY_AMOUNT";
/// <summary>
/// A read-only field that represents the default value of <see cref="HistoryAmount"/>.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public static readonly int DefaultHistoryAmount = 3;
/// <summary>
/// A read-only field that represents the default value of <see cref="ExpectedOffset"/>.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public static readonly double DefaultExpectedOffset = 0;
/// <summary>
/// A read-only field that represents the default value of <see cref="IsStabilizationEnabled"/>.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public static readonly bool DefaultStabilizationEnabled = true;
/// <summary>
/// A read-only field that represents the default value of <see cref="StabilizationTolerantShift"/>.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public static readonly double DefaultStabilizationTolerantShift = 0.00006;
/// <summary>
/// A read-only field that represents the default value of <see cref="StabilizationSpeed"/>.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public static readonly double DefaultStabilizationSpeed = 0.3;
/// <summary>
/// A read-only field that represents the default value of <see cref="StabilizationAcceleration"/>.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public static readonly double DefaultStabilizationAcceleration = 0.1;
/// <summary>
/// Initializes a new instance of the <see cref="ImageTrackingConfiguration"/> class.
/// </summary>
/// <exception cref="NotSupportedException">The feature is not supported.</exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public ImageTrackingConfiguration()
{
}
/// </value>
/// <exception cref="ObjectDisposedException">The <see cref="ImageTrackingConfiguration"/> already has been disposed of.</exception>
/// <exception cref="ArgumentOutOfRangeException"><paramref name="value"/> is less than zero.</exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public int HistoryAmount
{
get
/// Gets or sets the expected tracking offset.
/// </summary>
/// <value>
- /// Relative offset value, for which the object offset is expected (relative to the object size in the current frame).\n
+ /// Relative offset value for which the object offset is expected (relative to the object size in the current frame).\n
/// The default is 0.
/// </value>
/// <exception cref="ObjectDisposedException">The <see cref="ImageTrackingConfiguration"/> already has been disposed of.</exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public double ExpectedOffset
{
get
/// -or-\n
/// <paramref name="value"/> is greater than one.
/// </exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public double StabilizationAcceleration
{
get
/// The default is 0.3.
/// </value>
/// <exception cref="ObjectDisposedException">The <see cref="ImageTrackingConfiguration"/> already has been disposed of.</exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public double StabilizationSpeed
{
get
/// The default is 0.00006.
/// </value>
/// <exception cref="ObjectDisposedException">The <see cref="ImageTrackingConfiguration"/> already has been disposed of.</exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public double StabilizationTolerantShift
{
get
/// Gets or sets the state of the contour stabilization during tracking process.
/// </summary>
/// <value>
- /// true if the contour stabilization is enabled; otherwise, false.\n
+ /// true if the contour stabilization is enabled; otherwise false.\n
/// The default is true.
/// </value>
/// <exception cref="ObjectDisposedException">The <see cref="ImageTrackingConfiguration"/> already has been disposed of.</exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public bool IsStabilizationEnabled
{
get
/// <summary>
/// Represents the image tracking model interface.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public class ImageTrackingModel : IDisposable
{
private IntPtr _handle = IntPtr.Zero;
/// Initializes a new instance of the <see cref="ImageTrackingModel"/> class.
/// </summary>
/// <exception cref="NotSupportedException">The feature is not supported.</exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public ImageTrackingModel()
{
InteropModel.Create(out _handle).Validate("Failed to create FaceTrackingModel");
/// Initializes a new instance of the <see cref="ImageTrackingModel"/> class with the specified path.
/// </summary>
/// <remarks>
- /// Model have been saved by <see cref="Save()"/> can be loaded.
+ /// Model saved by <see cref="Save()"/> can be loaded.
/// </remarks>
/// <param name="modelPath">Path to the model to load.</param>
/// <exception cref="ArgumentNullException"><paramref name="modelPath"/> is null.</exception>
/// </exception>
/// <exception cref="UnauthorizedAccessException">No permission to access the specified file.</exception>
/// <seealso cref="Save()"/>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public ImageTrackingModel(string modelPath)
{
if (modelPath == null)
}
/// <summary>
- /// Sets target of image tracking model.\n
- /// Sets image object which will be tracked by using tracking functionality with this tracking model.
+ /// Sets the target of the image tracking model.\n
+ /// Sets the image object which will be tracked by using tracking functionality with this tracking model.
/// </summary>
/// <param name="imageObject">Image object which will be set as the target for tracking.</param>
/// <exception cref="ArgumentNullException"><paramref name="imageObject"/> is null.</exception>
/// -or-\n
/// <paramref name="imageObject"/> has already been disposed of.
/// </exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public void SetTarget(ImageObject imageObject)
{
if (imageObject == null)
/// <summary>
/// Refreshes the state of image tracking model.\n
- /// Clears moving history and change state to undetected. It is usually called each time before tracking is started
- /// for the new sequence of sources which is not the direct continuation of the sequence for which tracking has been performed before.
+ /// Clears the moving history and change state to undetected. It is usually called each time before tracking is started
+ /// for the new sequence of sources, which is not the direct continuation of the sequence for which tracking has been performed before.
/// Tracking algorithm will try to find image by itself.
/// </summary>
/// <exception cref="ObjectDisposedException">The <see cref="ImageTrackingModel"/> has already been disposed of.</exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public void Refresh()
{
InteropModel.Refresh(Handle, IntPtr.Zero).Validate("Failed to refresh state");
}
/// <summary>
- /// Saves tracking model to the file.
+ /// Saves the tracking model to the file.
/// </summary>
/// <param name="path">Path to the file to save the model.</param>
/// <exception cref="ArgumentNullException"><paramref name="path"/> is null.</exception>
/// <exception cref="UnauthorizedAccessException">No permission to write to the specified path.</exception>
/// <exception cref="ObjectDisposedException">The <see cref="ImageTrackingModel"/> has already been disposed of.</exception>
/// <exception cref="DirectoryNotFoundException">The directory for <paramref name="path"/> does not exist.</exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public void Save(string path)
{
if (path == null)
/// Releases the resources used by the <see cref="ImageTrackingModel"/> object.
/// </summary>
/// <param name="disposing">
- /// true to release both managed and unmanaged resources; false to release only unmanaged resources.
+ /// true to release both managed and unmanaged resources; otherwise false to release only unmanaged resources.
/// </param>
protected virtual void Dispose(bool disposing)
{
{
MediaVisionErrorCode = -0x019D0000,
/// <summary>
- /// Successful
+ /// Successful.
/// </summary>
None = ErrorCode.None,
/// <summary>
- /// Not supported
+ /// Not supported.
/// </summary>
NotSupported = ErrorCode.NotSupported,
/// <summary>
- /// Message too long
+ /// Message too long.
/// </summary>
MsgTooLong = ErrorCode.MsgTooLong,
/// <summary>
- /// No data
+ /// No data.
/// </summary>
NoData = ErrorCode.NoData,
/// <summary>
- /// Key not available
+ /// Key not available.
/// </summary>
KeyNotAvailable = ErrorCode.KeyNotAvailable,
/// <summary>
- /// Out of memory
+ /// Out of memory.
/// </summary>
OutOfMemory = ErrorCode.OutOfMemory,
/// <summary>
- /// Invalid parameter
+ /// Invalid parameter.
/// </summary>
InvalidParameter = ErrorCode.InvalidParameter,
/// <summary>
- /// Invalid operation
+ /// Invalid operation.
/// </summary>
InvalidOperation = ErrorCode.InvalidOperation,
/// <summary>
- /// Permission denied
+ /// Permission denied.
/// </summary>
PermissionDenied = ErrorCode.NotPermitted,
/// <summary>
- /// Not supported format
+ /// Not supported format.
/// </summary>
NotSupportedFormat = MediaVisionErrorCode | 0x01,
/// <summary>
/// </summary>
Internal = MediaVisionErrorCode | 0x02,
/// <summary>
- /// Invalid data
+ /// Invalid data.
/// </summary>
InvalidData = MediaVisionErrorCode | 0x03,
/// <summary>
- /// Invalid path (Since 3.0)
+ /// Invalid path (Since 3.0).
/// </summary>
InvalidPath = MediaVisionErrorCode | 0x04
}
namespace Tizen.Multimedia.Vision
{
/// <summary>
- /// Represents the media vision source to keep information on image or video frame data as raw buffer.
+ /// Represents the media vision source to keep information on the image or video frame data as raw buffer.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public class MediaVisionSource : IBufferOwner, IDisposable
{
private IntPtr _handle = IntPtr.Zero;
/// <exception cref="NotSupportedException">The feature is not supported.</exception>
/// <exception cref="ArgumentNullException"><paramref name="mediaPacket"/> is null.</exception>
/// <exception cref="ObjectDisposedException"><paramref name="mediaPacket"/> has already been disposed of.</exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public MediaVisionSource(MediaPacket mediaPacket)
: this(handle => FillMediaPacket(handle, mediaPacket))
{
/// -or-\n
/// <paramref name="colorSpace"/> is invalid.
/// </exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public MediaVisionSource(byte[] buffer, uint width, uint height, ColorSpace colorSpace)
: this(handle => FillBuffer(handle, buffer, width, height, colorSpace))
{
/// Gets the buffer of the media source.
/// </summary>
/// <exception cref="ObjectDisposedException">The <see cref="MediaVisionSource"/> has already been disposed of.</exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public IMediaBuffer Buffer
{
get
}
/// <summary>
- /// Gets height of the media source.
+ /// Gets the height of the media source.
/// </summary>
/// <exception cref="ObjectDisposedException">The <see cref="MediaVisionSource"/> has already been disposed of.</exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public uint Height
{
get
}
/// <summary>
- /// Gets width of the media source.
+ /// Gets the width of the media source.
/// </summary>
/// <exception cref="ObjectDisposedException">The <see cref="MediaVisionSource"/> has already been disposed of.</exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public uint Width
{
get
/// Gets <see cref="ColorSpace"/> of the media source.
/// </summary>
/// <exception cref="ObjectDisposedException">The <see cref="MediaVisionSource"/> has already been disposed of.</exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public ColorSpace Colorspace
{
get
/// Releases the resources used by the <see cref="MediaVisionSource"/> object.
/// </summary>
/// <param name="disposing">
- /// true to release both managed and unmanaged resources; false to release only unmanaged resources.
+ /// true to release both managed and unmanaged resources; otherwise false to release only unmanaged resources.
/// </param>
protected virtual void Dispose(bool disposing)
{
/// <summary>
/// Provides data for the <see cref="MovementDetector.Detected"/> event.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public class MovementDetectedEventArgs : EventArgs
{
/// <summary>
/// Initializes a new instance of the <see cref="MovementDetectedEventArgs"/> class.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public MovementDetectedEventArgs(IEnumerable<Rectangle> areas)
{
Areas = areas;
/// <summary>
/// Gets a set of rectangular regions where movement was detected.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public IEnumerable<Rectangle> Areas { get; }
}
}
/// <summary>
/// Represents a configuration of <see cref="MovementDetector"/>.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public class MovementDetectionConfiguration : SurveillanceEngineConfiguration
{
private const string KeyThreshold = "MV_SURVEILLANCE_MOVEMENT_DETECTION_THRESHOLD";
/// <summary>
/// A read-only field that represents the default value of <see cref="Threshold"/>.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public static readonly int DefaultThreshold = 10;
/// Initializes a new instance of the <see cref="MovementDetectionConfiguration"/> class.
/// </summary>
/// <exception cref="NotSupportedException">The feature is not supported.</exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public MovementDetectionConfiguration()
{
}
/// to specify the sensitivity of the movement detector.
/// </summary>
/// <value>
- /// The value indicating the sensitivity of the <see cref="MovementDetector"/> from 0 to 255 inclusive
+ /// The value indicating the sensitivity of <see cref="MovementDetector"/> from 0 to 255 inclusive,
/// where 255 means that no movements will be detected and 0 means that all frame changes
/// will be interpreted as movements.\n
/// The default is 10.
/// -or-\n
/// <paramref name="value"/> is greater than 255.
/// </exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public int Threshold
{
get
/// Provides the ability to detect movement on image sources.
/// </summary>
/// <seealso cref="MovementDetectionConfiguration"/>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public class MovementDetector : SurveillanceEngine
{
private const string KeyNumberOfRegions = "NUMBER_OF_MOVEMENT_REGIONS";
/// Initializes a new instance of the <see cref="MovementDetector"/> class.
/// </summary>
/// <exception cref="NotSupportedException">The feature is not supported.</exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public MovementDetector() : base(MovementDetectedEventType)
{
}
/// Occurs when the movement detected.
/// </summary>
/// <remarks>The event handler will be executed on an internal thread.</remarks>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public event EventHandler<MovementDetectedEventArgs> Detected;
internal override void OnEventDetected(IntPtr trigger, IntPtr source, int streamId,
/// <exception cref="ArgumentNullException"><paramref name="source"/> is null.</exception>
/// <exception cref="ObjectDisposedException">The <see cref="MovementDetector"/> has already been disposed of.</exception>
/// <see cref="SurveillanceSource.Push(MediaVisionSource)"/>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public void AddSource(SurveillanceSource source)
{
AddSource(source, null);
/// <paramref name="config"/> has already been disposed of.
/// </exception>
/// <see cref="SurveillanceSource.Push(MediaVisionSource)"/>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public void AddSource(SurveillanceSource source, MovementDetectionConfiguration config)
{
InvokeAddSource(source, config);
/// <summary>
/// Provides data for the <see cref="PersonAppearanceDetector.Detected"/> event.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public class PersonAppearanceDetectedEventArgs : EventArgs
{
/// <summary>
/// Initializes a new instance of the <see cref="PersonAppearanceDetectedEventArgs"/> class.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public PersonAppearanceDetectedEventArgs(IEnumerable<Rectangle> appeared,
IEnumerable<Rectangle> disappeared, IEnumerable<Rectangle> tracked)
{
/// <summary>
/// Gets a set of rectangular regions where appearances of the persons were detected.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public IEnumerable<Rectangle> AppearanceAreas { get; }
/// <summary>
/// Gets a set of rectangular regions where disappearances of the persons were detected.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public IEnumerable<Rectangle> DisappearanceAreas { get; }
/// <summary>
/// Gets a set of rectangular regions where persons were tracked.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public IEnumerable<Rectangle> TrackedAreas { get; }
}
}
/// <summary>
/// Represents a configuration of <see cref="PersonAppearanceDetector"/> instances.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public class PersonAppearanceDetectionConfiguration : SurveillanceEngineConfiguration
{
private const string KeySkipFramesCount = "MV_SURVEILLANCE_SKIP_FRAMES_COUNT";
/// <summary>
/// A read-only field that represents the default value of <see cref="SkipFramesCount"/>.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public static readonly int DefaultSkipFramesCount = 0;
/// <summary>
/// Initializes a new instance of the <see cref="PersonAppearanceDetectionConfiguration"/> class.
/// </summary>
/// <exception cref="NotSupportedException">The feature is not supported.</exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public PersonAppearanceDetectionConfiguration()
{
}
/// <exception cref="ObjectDisposedException">The <see cref="PersonAppearanceDetectionConfiguration"/> already has been disposed of.</exception>
/// <exception cref="ArgumentOutOfRangeException"><paramref name="value"/> is less than zero.</exception>
/// <seealso cref="SurveillanceSource.Push(MediaVisionSource)"/>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public int SkipFramesCount
{
get
/// Provides the ability to detect person appearance changes on image sources.
/// </summary>
/// <seealso cref="PersonAppearanceDetectionConfiguration"/>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public class PersonAppearanceDetector : SurveillanceEngine
{
private const string KeyAppearedNumber = "NUMBER_OF_APPEARED_PERSONS";
/// Initializes a new instance of the <see cref="PersonAppearanceDetector"/> class.
/// </summary>
/// <exception cref="NotSupportedException">The feature is not supported.</exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public PersonAppearanceDetector() : base(PersonAppearanceEventType)
{
}
/// Occurs when the any appearance changes detected.
/// </summary>
/// <remarks>The event handler will be executed on an internal thread.</remarks>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public event EventHandler<PersonAppearanceDetectedEventArgs> Detected;
internal override void OnEventDetected(IntPtr trigger, IntPtr source, int streamId,
/// <exception cref="ArgumentNullException"><paramref name="source"/> is null.</exception>
/// <exception cref="ObjectDisposedException">The <see cref="PersonAppearanceDetector"/> has already been disposed of.</exception>
/// <see cref="SurveillanceSource.Push(MediaVisionSource)"/>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public void AddSource(SurveillanceSource source)
{
AddSource(source, null);
/// <paramref name="config"/> has already been disposed of.
/// </exception>
/// <see cref="SurveillanceSource.Push(MediaVisionSource)"/>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public void AddSource(SurveillanceSource source, PersonAppearanceDetectionConfiguration config)
{
InvokeAddSource(source, config);
/// <summary>
/// Represents a configuration of <see cref="PersonRecognizer"/> instances.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public class PersonRecognitionConfiguration : SurveillanceEngineConfiguration
{
private const string KeyFaceRecognitionModelFilePath = "MV_SURVEILLANCE_FACE_RECOGNITION_MODEL_FILE_PATH";
/// <param name="modelPath">Path to the face recognition model.</param>
/// <exception cref="ArgumentNullException"><paramref name="modelPath"/> is null.</exception>
/// <exception cref="NotSupportedException">The feature is not supported.</exception>
- /// <since_tizen>3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public PersonRecognitionConfiguration(string modelPath)
{
FaceRecognitionModelPath = modelPath;
/// </summary>
/// <exception cref="ArgumentNullException"><paramref name="value"/> is null.</exception>
/// <exception cref="ObjectDisposedException">The <see cref="PersonRecognitionConfiguration"/> already has been disposed of.</exception>
- /// <since_tizen>3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public string FaceRecognitionModelPath
{
get
/// <summary>
/// Represents a result of <see cref="PersonRecognizer"/> instances.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public class PersonRecognitionInfo
{
/// <summary>
/// Initializes a new instance of the <see cref="PersonRecognitionInfo"/> class.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public PersonRecognitionInfo(Rectangle area, int label, double confidence)
{
Area = area;
/// <summary>
/// Gets the label that correspond to the recognized person.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public int Label { get; }
/// <summary>
/// Gets the confidence value that correspond to the recognized person.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public double Confidence { get; }
}
}
/// <summary>
/// Provides data for the <see cref="PersonRecognizer.Recognized"/> event.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public class PersonRecognizedEventArgs : EventArgs
{
/// <summary>
/// Initializes a new instance of the <see cref="PersonRecognizedEventArgs"/> class.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public PersonRecognizedEventArgs(IEnumerable<PersonRecognitionInfo> recognitionInfo)
{
Recognitions = recognitionInfo;
/// <summary>
/// Gets a set of information that correspond to the recognized persons.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public IEnumerable<PersonRecognitionInfo> Recognitions { get; }
}
}
/// Provides the ability to recognize person on image sources.
/// </summary>
/// <seealso cref="PersonRecognitionConfiguration"/>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public class PersonRecognizer : SurveillanceEngine
{
private const string KeyCount = "NUMBER_OF_PERSONS";
/// Initializes a new instance of the <see cref="PersonRecognizer"/> class.
/// </summary>
/// <exception cref="NotSupportedException">The feature is not supported.</exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public PersonRecognizer() : base(PersonRecognizedEventType)
{
}
/// </summary>
/// <remarks>The event handler will be executed on an internal thread.</remarks>
/// <seealso cref="PersonRecognitionConfiguration.FaceRecognitionModelPath"/>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public event EventHandler<PersonRecognizedEventArgs> Recognized;
internal override void OnEventDetected(IntPtr trigger, IntPtr source, int streamId,
/// </exception>
/// <exception cref="NotSupportedException">The model file is not supported format or file.</exception>
/// <see cref="SurveillanceSource.Push(MediaVisionSource)"/>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public void AddSource(SurveillanceSource source, PersonRecognitionConfiguration config)
{
if (config == null)
/// <summary>
/// Represents a QR configuration of <see cref="BarcodeGenerator"/>.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public class QrConfiguration
{
/// <summary>
/// -or-
/// <paramref name="ecc"/> is invalid.
/// </exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public QrConfiguration(QrMode qrMode, ErrorCorrectionLevel ecc, int version)
{
if (version < 1 || version > 40)
/// <summary>
/// Gets the encoding mode for the message.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public QrMode Mode { get; }
/// <summary>
/// Gets the error correction level.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public ErrorCorrectionLevel ErrorCorrectionLevel { get; }
/// <summary>
/// Gets the QR code version.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public int Version { get; }
}
}
namespace Tizen.Multimedia.Vision
{
/// <summary>
- /// Specifies the supported QR code encoding mode.
+ /// Specifies the supported QR code encoding modes.
/// </summary>
/// <since_tizen> 3</since_tizen>
public enum QrMode
/// <summary>
/// Numeric digits.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
Numeric,
/// <summary>
/// Alphanumeric characters, '$', '%', '*', '+', '-', '.', '/' and ':'.
/// <summary>
/// Raw 8-bit bytes.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
Byte,
/// <summary>
/// UTF-8 character encoding.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
Utf8
}
}
/// <summary>
/// Represents a region with 4 <see cref="Point"/>s.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public class Quadrangle
{
/// <summary>
- /// Initialize a new instance of the <see cref="Quadrangle"/> class with an array of <see cref="Point"/>.
+ /// Initializes a new instance of the <see cref="Quadrangle"/> class with an array of <see cref="Point"/>.
/// </summary>
/// <remarks><paramref name="points"/> must have 4 elements.</remarks>
- /// <param name="points">four points that define object bounding quadrangle.</param>
- /// <exception cref="ArgumentException">The Length of <paramref name="points"/> is not 4.</exception>
- /// <since_tizen> 3</since_tizen>
+ /// <param name="points">Four points that define the object bounding quadrangle.</param>
+ /// <exception cref="ArgumentException">The length of <paramref name="points"/> is not 4.</exception>
+ /// <since_tizen> 3 </since_tizen>
public Quadrangle(Point[] points)
{
if (points.Length != 4)
/// <summary>
/// Gets four points that define the object bounding quadrangle.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public Point[] Points { get; }
/// <summary>
/// <summary>
/// SurveillanceEngineConfiguration is a base class for surveillance configurations.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public class SurveillanceEngineConfiguration : EngineConfiguration
{
internal SurveillanceEngineConfiguration() : base("face_recognition", "image_recognition")
{
/// <summary>
/// SurveillanceEngine is a base class for surveillance event triggers.
- /// Media Vision Surveillance provides functionality can be utilized for creation of video surveillance systems.
+ /// Media Vision Surveillance provides the functionality which can be utilized for creation of video surveillance systems.
/// </summary>
/// <seealso cref="MovementDetector"/>
/// <seealso cref="PersonAppearanceDetector"/>
/// <seealso cref="PersonRecognizer"/>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public abstract class SurveillanceEngine : IDisposable
{
private IntPtr _handle = IntPtr.Zero;
/// <summary>
/// Initializes a new instance of the <see cref="SurveillanceEngine"/> class.
/// </summary>
- /// <param name="eventType">The type of the event trigger</param>
+ /// <param name="eventType">The type of the event trigger.</param>
internal SurveillanceEngine(string eventType)
{
EventTriggerCreate(eventType, out _handle).Validate("Failed to create surveillance event trigger.");
}
/// <summary>
- /// Sets and gets ROI (Region Of Interest).
+ /// Sets and gets the ROI (Region Of Interest).
/// </summary>
/// <exception cref="ObjectDisposedException">The <see cref="SurveillanceEngine"/> has already been disposed of.</exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public Point[] Roi
{
get
/// <exception cref="ArgumentNullException"><paramref name="source"/> is null.</exception>
/// <exception cref="ObjectDisposedException">The <see cref="SurveillanceEngine"/> has already been disposed of.</exception>
/// <exception cref="ArgumentException"><paramref name="source"/> has not been added.</exception>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public void RemoveSource(SurveillanceSource source)
{
if (source == null)
/// <summary>
- /// Releases all resources used by the <see cref="SurveillanceEngine"/> object.
+ /// Releases all the resources used by the <see cref="SurveillanceEngine"/> object.
/// </summary>
public void Dispose()
{
/// Releases the resources used by the <see cref="SurveillanceEngine"/> object.
/// </summary>
/// <param name="disposing">
- /// true to release both managed and unmanaged resources; false to release only unmanaged resources.
+ /// true to release both managed and unmanaged resources; otherwise false to release only unmanaged resources.
/// </param>
protected virtual void Dispose(bool disposing)
{
namespace Tizen.Multimedia.Vision
{
/// <summary>
- /// Provides the ability to push source to surveillance engines.
+ /// Provides the ability to push the source to surveillance engines.
/// </summary>
/// <seealso cref="MovementDetector"/>
/// <seealso cref="PersonAppearanceDetector"/>
/// <seealso cref="PersonRecognizer"/>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public class SurveillanceSource
{
private static int _nextStreamId = int.MinValue;
/// <summary>
/// Initializes a new instance of the <see cref="SurveillanceSource"/> class.
/// </summary>
- /// <since_tizen> 3</since_tizen>
+ /// <since_tizen> 3 </since_tizen>
public SurveillanceSource()
{
StreamId = GetNextStreamId();
}
/// <summary>
- /// Pushes source to the surveillance system to detect events.
+ /// Pushes the source to the surveillance system to detect events.
/// </summary>
/// <param name="source">The media source used for surveillance.</param>
/// <exception cref="ArgumentNullException"><paramref name="source"/> is null.</exception>