private Amazon.Rekognition.Model.CompareFacesResponse CallAWSServiceOperation(IAmazonRekognition client, Amazon.Rekognition.Model.CompareFacesRequest request) { Utils.Common.WriteVerboseEndpointMessage(this, client.Config, "Amazon Rekognition", "CompareFaces"); try { #if DESKTOP return(client.CompareFaces(request)); #elif CORECLR return(client.CompareFacesAsync(request).GetAwaiter().GetResult()); #else #error "Unknown build edition" #endif } catch (AmazonServiceException exc) { var webException = exc.InnerException as System.Net.WebException; if (webException != null) { throw new Exception(Utils.Common.FormatNameResolutionFailureMessage(client.Config, webException.Message), webException); } throw; } }
public object Execute(ExecutorContext context) { System.IO.MemoryStream _SourceImageContentStream = null; System.IO.MemoryStream _TargetImageContentStream = null; try { var cmdletContext = context as CmdletContext; // create request var request = new Amazon.Rekognition.Model.CompareFacesRequest(); if (cmdletContext.QualityFilter != null) { request.QualityFilter = cmdletContext.QualityFilter; } if (cmdletContext.SimilarityThreshold != null) { request.SimilarityThreshold = cmdletContext.SimilarityThreshold.Value; } // populate SourceImage var requestSourceImageIsNull = true; request.SourceImage = new Amazon.Rekognition.Model.Image(); System.IO.MemoryStream requestSourceImage_sourceImageContent = null; if (cmdletContext.SourceImageContent != null) { _SourceImageContentStream = new System.IO.MemoryStream(cmdletContext.SourceImageContent); requestSourceImage_sourceImageContent = _SourceImageContentStream; } if (requestSourceImage_sourceImageContent != null) { request.SourceImage.Bytes = requestSourceImage_sourceImageContent; requestSourceImageIsNull = false; } Amazon.Rekognition.Model.S3Object requestSourceImage_sourceImage_S3Object = null; // populate S3Object var requestSourceImage_sourceImage_S3ObjectIsNull = true; requestSourceImage_sourceImage_S3Object = new Amazon.Rekognition.Model.S3Object(); System.String requestSourceImage_sourceImage_S3Object_sourceImageBucket = null; if (cmdletContext.SourceImageBucket != null) { requestSourceImage_sourceImage_S3Object_sourceImageBucket = cmdletContext.SourceImageBucket; } if (requestSourceImage_sourceImage_S3Object_sourceImageBucket != null) { requestSourceImage_sourceImage_S3Object.Bucket = requestSourceImage_sourceImage_S3Object_sourceImageBucket; requestSourceImage_sourceImage_S3ObjectIsNull = false; } System.String requestSourceImage_sourceImage_S3Object_sourceImageName = null; if (cmdletContext.SourceImageName != null) { requestSourceImage_sourceImage_S3Object_sourceImageName = cmdletContext.SourceImageName; } if (requestSourceImage_sourceImage_S3Object_sourceImageName != null) { requestSourceImage_sourceImage_S3Object.Name = requestSourceImage_sourceImage_S3Object_sourceImageName; requestSourceImage_sourceImage_S3ObjectIsNull = false; } System.String requestSourceImage_sourceImage_S3Object_sourceImageVersion = null; if (cmdletContext.SourceImageVersion != null) { requestSourceImage_sourceImage_S3Object_sourceImageVersion = cmdletContext.SourceImageVersion; } if (requestSourceImage_sourceImage_S3Object_sourceImageVersion != null) { requestSourceImage_sourceImage_S3Object.Version = requestSourceImage_sourceImage_S3Object_sourceImageVersion; requestSourceImage_sourceImage_S3ObjectIsNull = false; } // determine if requestSourceImage_sourceImage_S3Object should be set to null if (requestSourceImage_sourceImage_S3ObjectIsNull) { requestSourceImage_sourceImage_S3Object = null; } if (requestSourceImage_sourceImage_S3Object != null) { request.SourceImage.S3Object = requestSourceImage_sourceImage_S3Object; requestSourceImageIsNull = false; } // determine if request.SourceImage should be set to null if (requestSourceImageIsNull) { request.SourceImage = null; } // populate TargetImage var requestTargetImageIsNull = true; request.TargetImage = new Amazon.Rekognition.Model.Image(); System.IO.MemoryStream requestTargetImage_targetImageContent = null; if (cmdletContext.TargetImageContent != null) { _TargetImageContentStream = new System.IO.MemoryStream(cmdletContext.TargetImageContent); requestTargetImage_targetImageContent = _TargetImageContentStream; } if (requestTargetImage_targetImageContent != null) { request.TargetImage.Bytes = requestTargetImage_targetImageContent; requestTargetImageIsNull = false; } Amazon.Rekognition.Model.S3Object requestTargetImage_targetImage_S3Object = null; // populate S3Object var requestTargetImage_targetImage_S3ObjectIsNull = true; requestTargetImage_targetImage_S3Object = new Amazon.Rekognition.Model.S3Object(); System.String requestTargetImage_targetImage_S3Object_targetImageBucket = null; if (cmdletContext.TargetImageBucket != null) { requestTargetImage_targetImage_S3Object_targetImageBucket = cmdletContext.TargetImageBucket; } if (requestTargetImage_targetImage_S3Object_targetImageBucket != null) { requestTargetImage_targetImage_S3Object.Bucket = requestTargetImage_targetImage_S3Object_targetImageBucket; requestTargetImage_targetImage_S3ObjectIsNull = false; } System.String requestTargetImage_targetImage_S3Object_targetImageName = null; if (cmdletContext.TargetImageName != null) { requestTargetImage_targetImage_S3Object_targetImageName = cmdletContext.TargetImageName; } if (requestTargetImage_targetImage_S3Object_targetImageName != null) { requestTargetImage_targetImage_S3Object.Name = requestTargetImage_targetImage_S3Object_targetImageName; requestTargetImage_targetImage_S3ObjectIsNull = false; } System.String requestTargetImage_targetImage_S3Object_targetImageVersion = null; if (cmdletContext.TargetImageVersion != null) { requestTargetImage_targetImage_S3Object_targetImageVersion = cmdletContext.TargetImageVersion; } if (requestTargetImage_targetImage_S3Object_targetImageVersion != null) { requestTargetImage_targetImage_S3Object.Version = requestTargetImage_targetImage_S3Object_targetImageVersion; requestTargetImage_targetImage_S3ObjectIsNull = false; } // determine if requestTargetImage_targetImage_S3Object should be set to null if (requestTargetImage_targetImage_S3ObjectIsNull) { requestTargetImage_targetImage_S3Object = null; } if (requestTargetImage_targetImage_S3Object != null) { request.TargetImage.S3Object = requestTargetImage_targetImage_S3Object; requestTargetImageIsNull = false; } // determine if request.TargetImage should be set to null if (requestTargetImageIsNull) { request.TargetImage = null; } CmdletOutput output; // issue call var client = Client ?? CreateClient(_CurrentCredentials, _RegionEndpoint); try { var response = CallAWSServiceOperation(client, request); object pipelineOutput = null; pipelineOutput = cmdletContext.Select(response, this); output = new CmdletOutput { PipelineOutput = pipelineOutput, ServiceResponse = response }; } catch (Exception e) { output = new CmdletOutput { ErrorResponse = e }; } return(output); } finally { if (_SourceImageContentStream != null) { _SourceImageContentStream.Dispose(); } if (_TargetImageContentStream != null) { _TargetImageContentStream.Dispose(); } } }
/// <summary> /// Compares a face in the <i>source</i> input image with each face detected in the <i>target</i> /// input image. /// /// <note> /// <para> /// If the source image contains multiple faces, the service detects the largest face /// and uses it to compare with each face detected in the target image. /// </para> /// </note> /// <para> /// In response, the operation returns an array of face matches ordered by similarity /// score with the highest similarity scores first. For each face match, the response /// provides a bounding box of the face and <code>confidence</code> value (indicating /// the level of confidence that the bounding box contains a face). The response also /// provides a <code>similarity</code> score, which indicates how closely the faces match. /// /// </para> /// <note> /// <para> /// By default, only faces with the similarity score of greater than or equal to 80% are /// returned in the response. You can change this value. /// </para> /// </note> /// <para> /// In addition to the face matches, the response returns information about the face in /// the source image, including the bounding box of the face and confidence value. /// </para> /// <note> /// <para> /// This is a stateless API operation. That is, the operation does not persist any data. /// </para> /// </note> /// <para> /// For an example, see <a>get-started-exercise-compare-faces</a> /// </para> /// /// <para> /// This operation requires permissions to perform the <code>rekognition:CompareFaces</code> /// action. /// </para> /// </summary> /// <param name="request">Container for the necessary parameters to execute the CompareFaces service method.</param> /// /// <returns>The response from the CompareFaces service method, as returned by Rekognition.</returns> /// <exception cref="Amazon.Rekognition.Model.AccessDeniedException"> /// You are not authorized to perform the action. /// </exception> /// <exception cref="Amazon.Rekognition.Model.ImageTooLargeException"> /// The input image size exceeds the allowed limit. For more information, see <a>limits</a>. /// </exception> /// <exception cref="Amazon.Rekognition.Model.InternalServerErrorException"> /// Amazon Rekognition experienced a service issue. Try your call again. /// </exception> /// <exception cref="Amazon.Rekognition.Model.InvalidImageFormatException"> /// The provided image format is not supported. /// </exception> /// <exception cref="Amazon.Rekognition.Model.InvalidParameterException"> /// Input parameter violated a constraint. Validate your parameter before calling the /// API again. /// </exception> /// <exception cref="Amazon.Rekognition.Model.InvalidS3ObjectException"> /// Amazon Rekognition is unable to access the S3 object specified in the request. /// </exception> /// <exception cref="Amazon.Rekognition.Model.ProvisionedThroughputExceededException"> /// The number of requests exceeded your throughput limit. If you want to increase this /// limit, contact Amazon Rekognition. /// </exception> /// <exception cref="Amazon.Rekognition.Model.ThrottlingException"> /// Amazon Rekognition is temporarily unable to process the request. Try your call again. /// </exception> public CompareFacesResponse CompareFaces(CompareFacesRequest request) { var marshaller = new CompareFacesRequestMarshaller(); var unmarshaller = CompareFacesResponseUnmarshaller.Instance; return Invoke<CompareFacesRequest,CompareFacesResponse>(request, marshaller, unmarshaller); }
/// <summary> /// Initiates the asynchronous execution of the CompareFaces operation. /// </summary> /// /// <param name="request">Container for the necessary parameters to execute the CompareFaces operation on AmazonRekognitionClient.</param> /// <param name="callback">An AsyncCallback delegate that is invoked when the operation completes.</param> /// <param name="state">A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback /// procedure using the AsyncState property.</param> /// /// <returns>An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndCompareFaces /// operation.</returns> public IAsyncResult BeginCompareFaces(CompareFacesRequest request, AsyncCallback callback, object state) { var marshaller = new CompareFacesRequestMarshaller(); var unmarshaller = CompareFacesResponseUnmarshaller.Instance; return BeginInvoke<CompareFacesRequest>(request, marshaller, unmarshaller, callback, state); }
/// <summary> /// Initiates the asynchronous execution of the CompareFaces operation. /// </summary> /// /// <param name="request">Container for the necessary parameters to execute the CompareFaces operation.</param> /// <param name="cancellationToken"> /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// </param> /// <returns>The task object representing the asynchronous operation.</returns> public Task<CompareFacesResponse> CompareFacesAsync(CompareFacesRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var marshaller = new CompareFacesRequestMarshaller(); var unmarshaller = CompareFacesResponseUnmarshaller.Instance; return InvokeAsync<CompareFacesRequest,CompareFacesResponse>(request, marshaller, unmarshaller, cancellationToken); }