--- /dev/null
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
{
/**
* @class ImageFeatureInfo
- * @brief This class holds information of individual image feature data in an image feature set.
+ * @brief This class holds information on the individual image feature data that is present in an image feature set.
*
* @since 2.1
*
- * The %ImageFeatureInfo class holds information of individual image feature data in an image feature set.
+ * The %ImageFeatureInfo class holds information on the individual image feature data that is present in an image feature set.
*
* @see Tizen::Uix::Vision::ImageFeatureManager
*/
public:
/**
- * Gets detail description for feature set.
+ * Gets the detailed description of the feature set.
*
* @since 2.1
*
- * @return Detail description for feature set
+ * @return The detailed description of the feature set
*
*/
Tizen::Base::String GetDescription(void) const;
/**
- * Gets width of thumbnail image.
+ * Gets the width of the thumbnail image.
*
* @since 2.1
*
- * @return Thumbnail image width.
+ * @return The thumbnail image width
*
*/
int GetThumbnailWidth(void) const;
/**
- * Gets height of thumbnail image.
+ * Gets the height of the thumbnail image.
*
* @since 2.1
*
- * @return Thumbnail image height.
+ * @return The thumbnail image height
*
- * @exception E_SUCCESS The method is successful.
+ * @exception E_SUCCESS The method is successful.
*/
int GetThumbnailHeight(void) const;
/**
- * Gets the thumbnail image by extracting it.
+ * Gets the thumbnail image through extraction.
*
* @since 2.1
*
- * @return A pointer to the Tizen::Base::ByteBuffer instance containing the thumbnail image
+ * @return A pointer to the Tizen::Base::ByteBuffer instance that contains the thumbnail image
*/
Tizen::Base::ByteBuffer* GetThumbnailN(void) const;
/**
- * Compares the calling instance with a specified instance.
+ * Compares the specified instance with the current instance.
*
* @since 2.1
*
- * @return @c true if the specified instance of Tizen::Base::Object is equal to the calling %ImageFeatureInfo instance, @n
+ * @return @c true if the specified instance of Tizen::Base::Object is equal to the current %ImageFeatureInfo instance, @n
* else @c false
* @param[in] obj The object to compare
*/
virtual bool Equals(const Tizen::Base::Object& obj) const;
/**
- * Gets the hash value of a current instance.
+ * Gets the hash value of the current instance.
*
* @since 2.1
*
/**
* @class ImageFeatureManager
- * @brief This class provides methods to generate individual feature data from an individual image data and collect to feature set file.
+ * @brief This class provides methods to generate individual feature data from an individual image data, and load it into a feature set file.
*
* @since 2.1
*
- * The %ImageFeatureManager class provides methods to generate individual feature data from an individual image data. This class also provides methods to manage image feature set which is a collection of individual feature data.
+ * The %ImageFeatureManager class provides methods to generate individual feature data from an individual image data.
+ * This class also provides methods to manage the image feature set which is a collection of individual feature data.
*
* The following example demonstrates how to use the %ImageFeatureManager class.
*
~ImageFeatureManager(void);
/**
- * Initializes this instance of %ImageFeatureManager and create image feature set. @n
- * Every application must call %Construct() before calling any other methods of %ImageFeatureManager.
+ * Initializes this instance of %ImageFeatureManager and creates an image feature set. @n
+ * Every application must call the %Construct() method before calling any other method of %ImageFeatureManager.
*
* @since 2.1
*
*
* @return An error code
*
- * @exception E_SUCCESS The method is successful.
+ * @exception E_SUCCESS The method is successful.
* @exception E_UNSUPPORTED_OPERATION The Emulator or target device does not support the required feature.
- * For more information, see <a href="../org.tizen.gettingstarted/html/tizen_overview/application_filtering.htm">Application Filtering</a>.
- * @remarks Before calling this method, check whether the feature is supported by
- * Tizen::System::SystemInfo::GetValue(const Tizen::Base::String&, bool&).
+ * For more information, see <a href="../org.tizen.gettingstarted/html/tizen_overview/application_filtering.htm">Application Filtering</a>.
+ * @remarks Before calling this method, check whether the feature is supported by Tizen::System::SystemInfo::GetValue(const Tizen::Base::String&, bool&).
*/
result Construct(void);
/**
- * Loads a feature set file.
+ * Loads the feature set file.
*
* @since 2.1
*
* @return An error code
*
- * @param[in] featureSetFilePath The feature set file path
+ * @param[in] featureSetFilePath The feature set file path at which to load the file
*
* @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_ARG The specified feature set file path is invalid.
+ * @exception E_INVALID_ARG The specified @c featureSetFilePath is invalid.
* @exception E_OUT_OF_MEMORY The memory is insufficient.
*
* @remarks
* - If a feature set file exists, it is updated.
* - If a feature set file does not exist, it is newly created.
- * - It is not mandatory to call this method to create new feature set file, but Flush() must be called with valid feature set file path.
+ * - It is not mandatory to call this method to create a new feature set file, but the Flush() method must be called with a valid feature set file path.
*/
result Load(const Tizen::Base::String& featureSetFilePath);
/**
- * Gets a list of supported image file formats for adding a feature.
+ * Gets the list of supported image file formats used to add the feature.
*
* @since 2.1
*
- * @return A list of supported image file formats
+ * @return The list of supported image file formats
*/
static Tizen::Base::Collection::IListT<Tizen::Media::ImageFormat>* GetSupportedImageFileFormatsListN(void);
/**
- * Adds a feature to a feature set.
+ * Adds a feature to the feature set.
*
* @since 2.1
*
- * @return A feature index of newly and successfully created feature, otherwise returns -1.
+ * @return The feature index of the newly and successfully created feature, @n
+ * else @c -1 is returned
*
* @param[in] imagePath The input image file path
*
*
* @remarks
* - The specific error code can be accessed using the GetLastResult() method.
- * - Input image file must be one of the supported image file formats.
- * - Calling this method actually means 'Mark As Add Feature'.
- * And the marked feature data will be added to a feature set file after calling Flush().
+ * - The input image file must have one of the supported image file formats.
+ * - Calling this method actually means 'Mark As Add Feature'
+ * and the marked feature data is added to the feature set file after calling the Flush() method.
* @see GetSupportedImageFileFormatsListN()
*/
int AddFeature(const Tizen::Base::String& imagePath);
/**
- * Adds a feature to a feature set.
+ * Adds a feature to the feature set.
*
* @since 2.1
*
- * @return A feature index of newly and successfully created feature, otherwise returns -1.
+ * @return The feature index of the newly and successfully created feature, @n
+ * else @c -1 is returned
*
- * @param[in] imageBuffer The image buffer of grayscale image data of specified width and height
+ * @param[in] imageBuffer The image buffer of the grayscale image data with the specified @c width and @c height
* @param[in] width The width of the input image
* @param[in] height The height of the input image
* @param[in] description The description of the feature
* @remarks
* - The specific error code can be accessed using the GetLastResult() method.
* - Calling this method actually means 'Mark As Add Feature'.
- * And the marked feature data will be added to a feature set file after calling Flush().
+ * and the marked feature data is added to the feature set file after calling the Flush() method.
* @see Flush(const Tizen::Base::String*)
*/
int AddFeature(const Tizen::Base::ByteBuffer& imageBuffer, int width, int height, const Tizen::Base::String& description);
/**
- * Gets the total number of features in a feature set.
+ * Gets the total number of features in the feature set.
*
* @since 2.1
*
- * @return The total number of features in a feature set
+ * @return The total number of features in the feature set
*/
int GetTotalNumberOfFeatures(void);
/**
- * Deletes a feature with a specified index in a feature set.
+ * Deletes the feature at the specified index in the feature set.
*
* @since 2.1
*
* @return An error code
*
- * @param[in] featureIndex The feature index in a feature set
+ * @param[in] featureIndex The feature index in the feature set
*
* @exception E_SUCCESS The method is successful.
* @exception E_INVALID_ARG The specified input parameter is invalid.
* @exception E_OUT_OF_MEMORY The memory is insufficient.
*
* @remarks Calling this method actually means 'Mark As Delete Feature'.
- * And the marked feature data is deleted after calling Flush().
- * @see Flush(const Tizen::Base::String*)
+ * and the marked feature data is deleted after calling the Flush() method.
+ * @see Flush(const Tizen::Base::String*)
*/
result DeleteFeature(int featureIndex);
/**
- * Deletes all features in a feature set.
+ * Deletes all the features in the feature set.
*
* @since 2.1
*
* @exception E_OUT_OF_MEMORY The memory is insufficient.
*
* @remarks Calling this method actually means 'Mark As Delete All Features'.
- * And all feature data is deleted after calling Flush().
+ * and all the feature data is deleted after calling the Flush() method.
* @see Flush(const Tizen::Base::String*)
*/
result DeleteAllFeatures(void);
/**
- * Flushes features into a feature set file and updates all changes as marked.
+ * Flushes features from the feature set file and updates all the changes as marked.
*
*
* @since 2.1
*
* @param[in] featureSetFilePath The feature set file path
* @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_ARG The specified feature set path is invalid.
+ * @exception E_INVALID_ARG The specified @c featureSetFilePath is invalid.
*
* @remarks
- * - All changes in the feature set file by AddFeature() or DeleteFeature() or DeleteAllFeatures() are updated by calling this method.
- * - If @c featureSetFilePath is not decided or is same as the file path used in Load(), the loaded feature set file is updated.
- * - If @c featureSetFilePath is not same as the file path used in %Load(), the loaded feature set file remains as is and new feature set file is created.
- * - If @c featureSetFilePath is @c null, the feature set file loaded by %Load() is overwritten.
- * - If @c featureSetFilePath is not decided or is same to file path used in %Load() and the loaded feature set file is read-only @c E_INVALID_ARG exception will be returned.
- * - If %Load() is not called to create new feature set file, this method must be called with valid @c featureSetFilePath.
+ * - All the changes in the feature set file used by the AddFeature(), DeleteFeature(), or DeleteAllFeatures() method are updated by calling this method.
+ * - If the @c featureSetFilePath is not decided or is same as the file path used in the Load() method, the loaded feature set file is updated.
+ * - If the @c featureSetFilePath is not same as the file path used by the %Load() method, the loaded feature set file is retained and a new feature set file is created.
+ * - If the @c featureSetFilePath is @c null, the feature set file loaded by the %Load() method is overwritten.
+ * - If the @c featureSetFilePath is not decided or is same as the file path used by the %Load() method, and the loaded feature set file is a read-only file, then @c E_INVALID_ARG exception is returned.
+ * - If the %Load() method is not called to create a new feature set file, this method must be called with a valid @c featureSetFilePath.
*
*/
result Flush(const Tizen::Base::String* featureSetFilePath = null);
/**
- * Gets information of the individual feature.
+ * Gets the information of the specified feature.
*
* @since 2.1
*
- * @return A pointer to ImageFeatureInfo
+ * @return A pointer to the ImageFeatureInfo instance
*
- * @param[in] featureIndex The feature index in a feature set
+ * @param[in] featureIndex The feature index in the feature set
*/
const Tizen::Uix::Vision::ImageFeatureInfo* GetImageFeatureInfo(int featureIndex) const;
{
/**
* @class ImageObject
- * @brief This class represents a single image object recognized by %ImageRecognizer and provides methods to access information of a recognized image object.
+ * @brief This class represents a single image object recognized by the %ImageRecognizer class and provides methods to access the information of a recognized image object.
*
* @since 2.1
*
- * The %ImageObject class represents a single image object recognized by ImageRecognizer and provides methods to access information of a recognized image object.
+ * The %ImageObject class represents a single image object recognized by the ImageRecognizer class and provides methods to access the information of a recognized image object.
*
*/
class _OSP_EXPORT_ ImageObject
{
public:
/**
- * Gets a unique identifier of the recognized image object in a scene.
+ * Gets the unique identifier of the recognized image object in the scene.
*
* @since 2.1
*
- * @return A unique identifier of the recognized image object in a scene
+ * @return The unique identifier of the recognized image object in the scene
*/
int GetId(void) const;
/**
- * Gets a feature index of the recognized image object in feature set.
+ * Gets the feature index of the recognized image object in the feature set.
*
* @since 2.1
*
- * @return A feature index of the recognized image object in feature set
+ * @return The feature index of the recognized image object in the feature set
*/
int GetFeatureId(void) const;
/**
- * Gets a transformation matrix 4x4 for 3D pose of the recognized image object.
+ * Gets the transformation matrix 4x4 for the 3D pose of the recognized image object.
*
* @since 2.1
*
- * @return A pointer to transformation matrix 4x4 for object position
+ * @return A pointer to the transformation matrix 4x4 that contains the object position
*/
const Tizen::Graphics::FloatMatrix4* GetTransformMatrix(void) const;
/**
- * Gets a transformed quadrilateral of the recognized image object.
+ * Gets the transformed quadrilateral of the recognized image object.
*
* @since 2.1
*
- * @return The array list of 4 points of the quadrilateral of the recognized image object
+ * @return The array list that contains the 4 points of the quadrilateral of the recognized image object
*/
const Tizen::Base::Collection::IListT<Tizen::Graphics::FloatPoint>* GetRectangle(void) const;
/**
- * Compares the calling instance with a specified instance.
+ * Compares the specified instance with the current instance.
*
* @since 2.1
*
- * @return @c true if the specified instance of Tizen::Base::Object is equal to the calling %ImageObject instance, @n
+ * @return @c true if the specified instance of Tizen::Base::Object is equal to the current %ImageObject instance, @n
* else @c false
* @param[in] obj The object to compare
*/
virtual bool Equals(const Tizen::Base::Object& obj) const;
/**
- * Gets the hash value of a current instance.
+ * Gets the hash value of the current instance.
*
* @since 2.1
*
class ImageFeatureManager;
/**
* @class ImageRecognizer
- * @brief This class provides methods to find same image objects to input image in the feature set that stores features of the reference images.
+ * @brief This class provides methods to find similar image objects that are used as the input images to the feature set that stores the features of the reference images.
*
* @since 2.1
*
- * The %ImageRecognizer class provides methods to find same image objects to input image in the feature set that stores features of the reference images.
- * This class also provide methods to calculate the 2D position and 3D pose transform matrix of the recognized image objects.
+ * The %ImageRecognizer class provides methods to find similar image objects that are used as the input images to the feature set that stores the features of the reference images.
+ * This class also provides methods to calculate the 2D position and 3D pose transform matrix of the recognized image objects.
*
* The following example demonstrates how to use the %ImageRecognizer class.
*
/**
* Initializes this instance of %ImageRecognizer. @n
- * Every application must call %Construct() before calling any other methods of %ImageRecognizer.
+ * Every application must call the %Construct() method before calling any other method of %ImageRecognizer.
*
* @since 2.1
*
* @feature %http://tizen.org/feature/vision.image_recognition
*
- * @exception E_SUCCESS The method is successful.
+ * @exception E_SUCCESS The method is successful.
* @exception E_UNSUPPORTED_OPERATION The Emulator or target device does not support the required feature.
- * For more information, see <a href="../org.tizen.gettingstarted/html/tizen_overview/application_filtering.htm">Application Filtering</a>.
- * @remarks Before calling this method, check whether the feature is supported by
- * Tizen::System::SystemInfo::GetValue(const Tizen::Base::String&, bool&).
+ * For more information, see <a href="../org.tizen.gettingstarted/html/tizen_overview/application_filtering.htm">Application Filtering</a>.
+ * @remarks Before calling this method, check whether the feature is supported by Tizen::System::SystemInfo::GetValue(const Tizen::Base::String&, bool&).
*/
result Construct(void);
/**
- * Enables single or multiple tracking mode.
+ * Enables or disables the single or multiple tracking mode.
*
* @since 2.1
*
- * @param[in] enable Enable multiple tracking mode on @c true, default is single tracking mode
+ * @param[in] enable The boolean value that enables or disables the multiple tracking mode @n
+ * The default mode is the single tracking mode.
*
* @remarks
- * - In single tracking mode, only one image is recognized in the screen at once.
- * - In multiple tracking mode, multiple images (maximum 3) can be recognized and tracked simultaneously.
+ * - In the single tracking mode, only one image is recognized at a time on the screen.
+ * - In the multiple tracking mode, multiple images (maximum 3) can be recognized and tracked simultaneously.
*/
void SetMultiTrackingEnabled(bool enable);
/**
- * Sets the width and height of an input image.
+ * Sets the width and the height of the input image.
*
* @since 2.1
*
* Sets the ImageFeatureManager instance for initialization.
*
* @since 2.1
- * @pre ImageFeatureManager should be initialized by loading a feature set file using the ImageFeatureManager::Load() method.
+ * @pre The ImageFeatureManager should be initialized by loading the feature set file using the ImageFeatureManager::Load() method.
*
* @return An error code
- * @param[in] imageFeatureManager The ImageFeatureManager instance managing image feature set to use for recognition
+ * @param[in] imageFeatureManager The ImageFeatureManager instance that manages the image feature set to use for recognition
* @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_ARG An input ImageFeatureManager is invalid.
+ * @exception E_INVALID_ARG The ImageFeatureManager is invalid.
*
- * @remarks ImageFeatureManager should be initialized by loading a feature set file.
+ * @remarks The ImageFeatureManager should be initialized by loading the feature set file.
*/
result SetFeatureManager(ImageFeatureManager& imageFeatureManager);
/**
- * Gets a count of the recognized image object.
+ * Gets the count of the recognized image object.
*
* @since 2.1
*
- * @return A count of the recognized image object
+ * @return The count of the recognized image object
*
- * @remarks The recognized object has index value from @c 0 to (count of the recognized image objects - 1)
- * @see GetRecognizedObject(int)
+ * @remarks The recognized object has an index value that ranges from @c 0 to (count of the recognized image objects) @c - 1.
+ * @see GetRecognizedObject()
*/
int GetRecognizedObjectCount(void);
/**
- * Gets the recognized image object to get information.
+ * Gets the recognized image object that contains the information.
*
* @since 2.1
*
- * @return A pointer to ImageObject that includes all information about the recognized image object
+ * @return A pointer to the ImageObject instance that includes all the information about the recognized image object
* @param[in] index The index of the recognized image object @n
- * Valid range of this parameter is @c 0 to (count of the recognized image objects - 1).
+ * The valid range for this parameter is @c 0 to (count of the recognized image objects) @c - 1.
* @exception E_SUCCESS The method is successful.
*
* @see GetRecognizedObjectCount()
const ImageObject* GetRecognizedObject(int index) const;
/**
- * Processes an input image for recognition.
+ * Processes the input image for recognition.
*
* @since 2.1
*
* @return An error code
*
* @param[in] imageBuffer The input image buffer @n
- * It must be allocated outside and have size of (width*height) set by SetImageSize().
+ * It must be allocated externally and have a size of (width*height) set by SetImageSize().
* @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_ARG The specified @c imageBuffer is not allocated or the size of @c imageBuffer is not equal to the input image size set by SetImageSize().
+ * @exception E_INVALID_ARG Either of the following conditions has occurred:
+ * - The specified @c imageBuffer is not allocated.
+ * - The size of the specified @c imageBuffer is not equal to the input image size set by SetImageSize().
* @exception E_OUT_OF_MEMORY The memory is insufficient.
* @see SetImageSize(int, int)
*/
/**
* Initializes this instance of %QRCodeGenerator. @n
- * Every application must call %Construct() before calling any other methods of %QRCodeGenerator.
+ * Every application must call the %Construct() method before calling any other method of %QRCodeGenerator.
*
* @since 2.1
*
* @feature %http://tizen.org/feature/vision.qrcode_generation
*
- * @exception E_SUCCESS The method is successful.
+ * @exception E_SUCCESS The method is successful.
* @exception E_UNSUPPORTED_OPERATION The Emulator or target device does not support the required feature.
- * For more information, see <a href="../org.tizen.gettingstarted/html/tizen_overview/application_filtering.htm">Application Filtering</a>.
- * @remarks Before calling this method, check whether the feature is supported by
- * Tizen::System::SystemInfo::GetValue(const Tizen::Base::String&, bool&).
+ * For more information, see <a href="../org.tizen.gettingstarted/html/tizen_overview/application_filtering.htm">Application Filtering</a>.
+ * @remarks Before calling this method, check whether the feature is supported by Tizen::System::SystemInfo::GetValue(const Tizen::Base::String&, bool&).
*/
result Construct(void);
/**
- * Gets a list of supported image file formats.
+ * Gets the list of supported image file formats.
*
* @since 2.1
*
- * @return A list of supported image file formats
+ * @return The list of supported image file formats
*/
static Tizen::Base::Collection::IListT<Tizen::Media::ImageFormat>* GetSupportedImageFileFormatsListN(void);
/**
- * Encodes a QR code into a file.
+ * Encodes the QR code into the file.
*
* @since 2.1
*
* @return An error code
- * @param[in] message The text to encode to QR code image
- * @param[in] mode The input text encoding format (@c QR_CODE_MODE_ALPHANUMERIC, @c QR_CODE_MODE_BYTE, @c QR_CODE_MODE_UTF8)
+ * @param[in] message The text used to encode the QR code image
+ * @param[in] mode The input text encoding format (@c QR_CODE_MODE_ALPHANUMERIC, @c QR_CODE_MODE_BYTE, or @c QR_CODE_MODE_UTF8)
* @param[in] errorCorrectionLevel The QR code error correction level
- * @param[in] compatibility The compatibility mode with zxing library for UTF-8 codes mode when mode is selected with @c QR_MODE_UTF8
+ * @param[in] compatibility The compatibility mode with the zxing library for the UTF-8 codes mode, which is activated when the mode selected is @c QR_MODE_UTF8
* @param[in] imageFilePath The file path of the generated QR code image
* @param[in] imageFormat The image file format of the generated QR code image
* @param[out] width The width of the generated QR code image
* @exception E_INVALID_ARG A specified input parameter is invalid.
* @exception E_FILE_NOT_FOUND The specified file cannot be found or accessed.
*
- * @remarks QR code encoding for UTF-8 is not standardized as yet.
- * So we support UTF-8 encoding/decoding compatibility to zxing(http://code.google.com/p/zxing/) library.
+ * @remarks The QR code encoding for the UTF-8 codes mode is not standardized as yet,
+ * so the UTF-8 encoding/decoding compatibility with the zxing(http://code.google.com/p/zxing/) library is currently supported.
*/
result EncodeToFile(const Tizen::Base::String& message, QrCodeMode mode, QrCodeErrorCorrectionLevel errorCorrectionLevel, bool compatibility, const Tizen::Base::String& imageFilePath, Tizen::Media::ImageFormat imageFormat, int& width, int& height);
/**
- * Encodes a QR code into a byte buffer.
+ * Encodes the QR code into the byte buffer.
*
* @since 2.1
*
- * @return A pointer to the Tizen::Base::ByteBuffer instance containing the generated QR code image
- * @param[in] message The text to encode to QR code image
- * @param[in] mode The input text encoding format (@c QR_CODE_MODE_ALPHANUMERIC, @c QR_CODE_MODE_BYTE, @c QR_CODE_MODE_UTF8)
+ * @return A pointer to the Tizen::Base::ByteBuffer instance that contains the generated QR code image
+ * @param[in] message The text used to encode the QR code image
+ * @param[in] mode The input text encoding format (@c QR_CODE_MODE_ALPHANUMERIC, @c QR_CODE_MODE_BYTE, or @c QR_CODE_MODE_UTF8)
* @param[in] error_level The QR code error correction level
- * @param[in] compatibility The compatibility mode with zxing library for UTF-8 codes mode when mode is selected with @c QR_CODE_MODE_UTF8
+ * @param[in] compatibility The compatibility mode with the zxing library for the UTF-8 codes mode, which is activated when the mode selected is @c QR_CODE_MODE_UTF8
* @param[out] width The width of the generated QR code image
* @param[out] height The height of the generated QR code image
* @exception E_SUCCESS The method is successful.
* @exception E_INVALID_ARG A specified input parameter is invalid.
*
- * @remarks QR code encoding for UTF-8 is not standardized as yet.
- * So we support UTF-8 encoding/decoding compatibility to zxing(http://code.google.com/p/zxing/) library.
+ * @remarks The QR code encoding for the UTF-8 codes mode is not standardized as yet,
+ * so the UTF-8 encoding/decoding compatibility with the zxing(http://code.google.com/p/zxing/) library is currently supported.
*/
Tizen::Base::ByteBuffer* EncodeToBufferN(const Tizen::Base::String& message, QrCodeMode mode, QrCodeErrorCorrectionLevel error_level, bool compatibility, int& width, int& height);
/**
* @class QrCodeObject
- * @brief This class represents a single QR code object recognized by %QrCodeRecognizer and provides the method to access information of the recognized QR code object.
+ * @brief This class represents a single QR code object recognized by the %QrCodeRecognizer class and provides methods to access the information of a recognized QR code object.
*
* @since 2.1
*
- * The %QrCodeObject class represents a single QR code object recognized by QrCodeRecognizer and provides the method to access information of the recognized QR code object.
+ * The %QrCodeObject class represents a single QR code object recognized by the QrCodeRecognizer class and provides methods to access the information of a recognized QR code object.
*/
class _OSP_EXPORT_ QrCodeObject
public:
/**
- * Gets a unique identifier of the recognized QR code object in a scene.
+ * Gets the unique identifier of the recognized QR code object in the scene.
*
* @since 2.1
*
- * @return A unique identifier of the recognized QR code object in a scene
+ * @return The unique identifier of the recognized QR code object in the scene
*/
int GetId(void) const;
/**
- * Gets a version of the recognized QR code object.
+ * Gets the version of the recognized QR code object.
*
* @since 2.1
*
- * @return A version of the recognized QR code object
+ * @return The version of the recognized QR code object
*/
int GetVersion(void) const;
/**
- * Gets an error correction level of the recognized QR code object.
+ * Gets the error correction level of the recognized QR code object.
*
* @since 2.1
*
- * @return An error correction level of the recognized QR code object
+ * @return The error correction level of the recognized QR code object
*/
Tizen::Uix::Vision::QrCodeErrorCorrectionLevel GetErrorCorrectionLevel(void) const;
/**
- * Gets a text of the QR code object.
+ * Gets the text of the QR code object.
*
* @since 2.1
*
- * @return A text of the QR code object
+ * @return The text of the QR code object
*/
Tizen::Base::String GetText(void) const;
/**
- * Gets a transformation matrix 4x4 for 3D pose of the recognized QR code object.
+ * Gets the transformation matrix 4x4 for the 3D pose of the recognized QR code object.
*
* @since 2.1
*
- * @return A pointer to transformation matrix 4x4 for object position
+ * @return A pointer to the transformation matrix 4x4 that contains the object position
*/
const Tizen::Graphics::FloatMatrix4* GetTransformMatrix(void) const;
/**
- * Gets a transformed quadrilateral of the recognized QR code object.
+ * Gets the transformed quadrilateral of the recognized QR code object.
*
* @since 2.1
*
- * @return The array list of 4 points of the quadrilateral of the recognized QR code object
+ * @return The array list that contains the 4 points of the quadrilateral of the recognized QR code object
*/
const Tizen::Base::Collection::IListT<Tizen::Graphics::FloatPoint>* GetRectangle(void) const;
/**
- * Compares the calling instance with a specified instance.
+ * Compares the specified instance with the current instance.
*
* @since 2.1
*
- * @return @c true if the specified instance of Tizen::Base::Object is equal to the calling %QrCodeObject instance, @n
+ * @return @c true if the specified instance of Tizen::Base::Object is equal to the current %QrCodeObject instance, @n
* else @c false
* @param[in] obj The object to compare
*/
virtual bool Equals(const Tizen::Base::Object& obj) const;
/**
- * Gets the hash value of a current instance.
+ * Gets the hash value of the current instance.
*
* @since 2.1
*
/**
* Initializes this instance of %QrCodeRecognizer. @n
- * Every application must call %Construct() before calling any other methods of %QrCodeRecognizer.
+ * Every application must call the %Construct() method before calling any other method of %QrCodeRecognizer.
*
* @since 2.1
*
* @feature %http://tizen.org/feature/vision.qrcode_recognition
*
- * @exception E_SUCCESS The method is successful.
+ * @exception E_SUCCESS The method is successful.
* @exception E_UNSUPPORTED_OPERATION The Emulator or target device does not support the required feature.
- * For more information, see <a href="../org.tizen.gettingstarted/html/tizen_overview/application_filtering.htm">Application Filtering</a>.
- * @remarks Before calling this method, check whether the feature is supported by
- * Tizen::System::SystemInfo::GetValue(const Tizen::Base::String&, bool&).
+ * For more information, see <a href="../org.tizen.gettingstarted/html/tizen_overview/application_filtering.htm">Application Filtering</a>.
+ * @remarks Before calling this method, check whether the feature is supported by Tizen::System::SystemInfo::GetValue(const Tizen::Base::String&, bool&).
*/
result Construct(void);
/**
- * Sets the width and height of an input image.
+ * Sets the width and the height of the input image.
*
* @since 2.1
*
* @param[in] height The height of the frame in pixels
* @exception E_SUCCESS The method is successful.
* @exception E_INVALID_ARG A specified input parameter is invalid.
- * @remarks This method must be called once before calling ProcessImage().
+ * @remarks This method must be called once before calling the ProcessImage() method.
*/
result SetImageSize(int width, int height);
/**
- * Processes an input image for recognition.
+ * Processes the input image for recognition.
*
* @since 2.1
*
* @return An error code
*
* @param[in] imageBuffer The input image buffer @n
- * It must be allocated outside and have size of (width*height) set by SetImageSize().
+ * It must be allocated externally and have a size of (width*height) set by SetImageSize().
* @exception E_SUCCESS The method is successful.
- * @exception E_INVALID_ARG The specified @c imageBuffer is not allocated or the size of @c imageBuffer is not equal to the input image size set by SetImageSize().
+ * @exception E_INVALID_ARG Either of the following conditions has occurred;
+ * - The specified @c imageBuffer is not allocated
+ * - The size of the specified @c imageBuffer is not equal to the input image size set by SetImageSize().
* @exception E_OUT_OF_MEMORY The memory is insufficient.
*/
result ProcessImage(const Tizen::Base::ByteBuffer& imageBuffer);
* @exception E_SUCCESS The method is successful.
* @exception E_INVALID_ARG The specified input parameter is invalid.
*
- * @remarks The ROI is used to reset camera focus to get better image and it can be obtained after calling ProcessImage() at least once.
+ * @remarks The ROI is used to reset the camera focus to get a better image and it can be obtained after calling the ProcessImage() method at least once.
*/
result GetFocusRoi(Tizen::Graphics::Rectangle& roi);
/**
- * Gets a count of the recognized QR code object.
+ * Gets the count of the recognized QR code object.
*
* @since 2.1
*
- * @return A count of the recognized QR code object
+ * @return The count of the recognized QR code object
*
- * @remarks The recognized QR code object has index value from @c 0 to (count of the recognized QR code objects - 1)
- * @see GetRecognizedObject(int)
+ * @remarks The recognized QR code object has an index value that ranges from @c 0 to (count of the recognized QR code objects) @c - 1.
+ * @see GetRecognizedObject()
*/
int GetRecognizedObjectCount(void);
/**
- * Gets the recognized QR code object to get information.
+ * Gets the recognized QR code object that contains the information.
*
* @since 2.1
*
- * @return A pointer to QrCodeObject that includes all information about the recognized QR code object
+ * @return A pointer to the QrCodeObject that includes all the information about the recognized QR code object
* @param[in] index The index of the recognized QR code object @n
- * Valid range of this parameter is @c 0 to (count of the recognized QR code objects - 1).
+ * The valid range for this parameter is @c 0 to (count of the recognized QR code objects) @c - 1.
* @exception E_SUCCESS The method is successful.
*
* @see GetRecognizedObjectCount()
/**
* @enum QrCodeErrorCorrectionLevel
*
- * Defines possible error correction levels for QR code.
+ * Defines the possible error correction levels for the QR code.
*
* @since 2.1
*/
enum QrCodeErrorCorrectionLevel
{
- QR_CODE_ERROR_CORRECTION_LEVEL_L = 1, /** < Low */
- QR_CODE_ERROR_CORRECTION_LEVEL_M = 2, /** < Medium */
- QR_CODE_ERROR_CORRECTION_LEVEL_Q = 3, /** < Quartile */
- QR_CODE_ERROR_CORRECTION_LEVEL_H = 4 /** < High */
+ QR_CODE_ERROR_CORRECTION_LEVEL_L = 1, /**< Low */
+ QR_CODE_ERROR_CORRECTION_LEVEL_M = 2, /**< Medium */
+ QR_CODE_ERROR_CORRECTION_LEVEL_Q = 3, /**< Quartile */
+ QR_CODE_ERROR_CORRECTION_LEVEL_H = 4 /**< High */
};
/**
* @enum QrCodeMode
*
- * Defines possible encoding modes for QR codes.
+ * Defines the possible encoding modes of the QR code.
*
* @since 2.1
*/
enum QrCodeMode
{
- QR_CODE_MODE_ALPHANUMERIC = 0, /** < Alphanumeric */
- QR_CODE_MODE_BYTE = 1, /** < Byte */
- QR_CODE_MODE_UTF8 = 2 /** < UTF8 */
+ QR_CODE_MODE_ALPHANUMERIC = 0, /**< Alphanumeric */
+ QR_CODE_MODE_BYTE = 1, /**< Byte */
+ QR_CODE_MODE_UTF8 = 2 /**< UTF8 */
};
} } } //Tizen::Uix::Vision
+%define debug_package %{nil}
%define __strip /bin/true
Name: osp-vision
%prep
%setup -q
-%build
+%build
+%if 0%{?tizen_build_binary_release_type_eng}
+CXXFLAGS="$CXXFLAGS -D_SECURE_LOG"
+%endif
MAJORVER=`echo %{version} | awk 'BEGIN {FS="."}{print $1}'`
%ifarch %{ix86}
-CXXFLAGS="$CXXFLAGS -D_OSP_DEBUG_ -D_SECURE_LOG -D_OSP_X86_ -D_OSP_EMUL_" cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} -DFULLVER=%{version} -DMAJORVER=${MAJORVER} -DARCH=x86
+%if 0%{?simulator}
+CXXFLAGS="$CXXFLAGS -D_OSP_DEBUG_ -D_OSP_X86_ -D_OSP_EMUL_" cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} -DFULLVER=%{version} -DMAJORVER=${MAJORVER} -DARCH=x86
%else
+CXXFLAGS="$CXXFLAGS -D_OSP_DEBUG_ -D_OSP_X86_ " cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} -DFULLVER=%{version} -DMAJORVER=${MAJORVER} -DARCH=x86
+%endif
+%else
+
+%if 0%{?tizen_build_binary_release_type_eng}
CXXFLAGS="-O2 -g -pipe -Wall -fno-exceptions -Wformat -Wformat-security -Wl,--as-needed -fmessage-length=0 -march=armv7-a -mtune=cortex-a8 -mlittle-endian -mfpu=neon -mfloat-abi=softfp -D__SOFTFP__ -mthumb -Wa,-mimplicit-it=thumb -funwind-tables -D_OSP_DEBUG_ -D_SECURE_LOG -D_OSP_ARMEL_" cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} -DFULLVER=%{version} -DMAJORVER=${MAJORVER} -DARCH=arm
+%else
+CXXFLAGS="-O2 -g -pipe -Wall -fno-exceptions -Wformat -Wformat-security -Wl,--as-needed -fmessage-length=0 -march=armv7-a -mtune=cortex-a8 -mlittle-endian -mfpu=neon -mfloat-abi=softfp -D__SOFTFP__ -mthumb -Wa,-mimplicit-it=thumb -funwind-tables -D_OSP_DEBUG_ -D_OSP_ARMEL_" cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} -DFULLVER=%{version} -DMAJORVER=${MAJORVER} -DARCH=arm
%endif
+
+%endif
+
+
# Call make instruction with smp support
make %{?jobs:-j%jobs}
%install
rm -rf %{buildroot}
mkdir -p %{buildroot}/usr/share/license
-cp %{_builddir}/%{name}-%{version}/LICENSE.Apache-2.0 %{buildroot}/usr/share/license/%{name}
-cp %{_builddir}/%{name}-%{version}/LICENSE.Flora %{buildroot}/usr/share/license/%{name}.Flora
+cp %{_builddir}/%{name}-%{version}/LICENSE.APLv2 %{buildroot}/usr/share/license/%{name}
+cat %{_builddir}/%{name}-%{version}/LICENSE.Flora >> %{buildroot}/usr/share/license/%{name}
%make_install
%files
%manifest osp-vision.manifest
/usr/share/license/%{name}
-/usr/share/license/%{name}.Flora
%{_libdir}/osp/*.so*
%files devel
result
QrCodeGenerator::EncodeToFile(const Tizen::Base::String& message, QrCodeMode mode, QrCodeErrorCorrectionLevel errorCorrectionLevel, bool compatibility, const Tizen::Base::String& imageFilePath, Tizen::Media::ImageFormat imageFormat, int& width, int& height)
{
+ result r = E_SUCCESS;
SysAssertf(__pQrCodeGeneratorImpl != null, "Not yet constructed! Consruct() should be called before use.");
SysSecureTryReturnResult(NID_UIX, !message.IsEmpty(), E_INVALID_ARG,
Tizen::Text::Utf8Encoding utf8;
std::unique_ptr<Tizen::Base::ByteBuffer> pBuffer(utf8.GetBytesN(message));
- if (!__pQrCodeGeneratorImpl->Encode((char*) pBuffer->GetPointer(), mode, errorCorrectionLevel, compatibility))
- {
- return E_FAILURE;
- }
+ if (!__pQrCodeGeneratorImpl->Encode((char*) pBuffer->GetPointer(), mode, errorCorrectionLevel, compatibility))
+ {
+ return E_FAILURE;
+ }
+
+ if(!__pQrCodeGeneratorImpl->SaveToFile(imageFilePath, imageFormat,width, height))
+ {
+ r = GetLastResult();
+ if( r == E_ILLEGAL_ACCESS || r == E_OUT_OF_RANGE)
+ {
+ r = E_FILE_NOT_FOUND;
+ }
+ else if (r == E_UNSUPPORTED_FORMAT)
+ {
+ r = E_INVALID_ARG;
+ }
+ else
+ {
+ r = E_FAILURE;
+ }
+
+ }
- return __pQrCodeGeneratorImpl->SaveToFile(imageFilePath, imageFormat, width, height) ? E_SUCCESS : E_FAILURE;
+ return r;
}
Tizen::Base::Collection::IListT<Tizen::Media::ImageFormat>*
_ImageFeatureManagerImpl::_ImageFeatureManagerImpl(void)
: __imageFeatureManager(0)
, __readOnly(false)
- , __minSupportedSize(100)
- , __maxSupportedResolution(16000000)
+ , __minSupportedSize(100)
+ , __maxSupportedResolution(16000000)
{
}
if ((imgWidth < __minSupportedSize || imgHeight < __minSupportedSize) || (imgWidth * imgHeight > __maxSupportedResolution))
{
- SetLastResult(E_INVALID_ARG);
+ SetLastResult(E_INVALID_ARG);
return -1;
}
{
SetLastResult(E_INVALID_ARG);
}
-
+
return false;
}
{
if(!GetSize(width, height))
{
+ SetLastResult(E_INVALID_ARG);
return false;
}
unsigned char* grayBuffer = new unsigned char[(width * height * 3) >> 1];
if(!SaveToBuffer(grayBuffer))
{
+ SetLastResult(E_OPERATION_FAILED); //No proper error returned from SaveToBuffer() Api.
return false;
}
delete[] grayBuffer;
if(IsFailed(r))
{
- return false;
+ SetLastResult(r);
+ return false;
}
r = imBuf.EncodeToFile(imagepath, imageFormat, true);
if(IsFailed(r))
{
- return false;
+ SetLastResult(r);
+ return false;
}
return true;