private void Button_Click(object sender, RoutedEventArgs e) { Console.WriteLine("show"); string defaultURL = @"C:\Users\Admin\Desktop\images\anh-tra-sua.jpg"; String photo = txtURL.Text == string.Empty ? defaultURL : txtURL.Text; var rekognitionClient = new AmazonRekognitionClient(); var source = ToByteStream(photo); var request = new DetectModerationLabelsRequest() { Image = source }; try { var response = rekognitionClient.DetectModerationLabels(request); Console.WriteLine("Detected labels for " + photo); int count = 1; txtInfo.Text = string.Empty; foreach (ModerationLabel label in response.ModerationLabels) { txtInfo.Text += count++ + "/" + label.Name + " - " + label.Confidence + "\n"; } } catch (Exception) { } }
internal DetectModerationLabelsResponse DetectModerationLabels(DetectModerationLabelsRequest request) { var marshaller = new DetectModerationLabelsRequestMarshaller(); var unmarshaller = DetectModerationLabelsResponseUnmarshaller.Instance; return(Invoke <DetectModerationLabelsRequest, DetectModerationLabelsResponse>(request, marshaller, unmarshaller)); }
public static void Example() { String photo = "input.jpg"; String bucket = "bucket"; AmazonRekognitionClient rekognitionClient = new AmazonRekognitionClient(); DetectModerationLabelsRequest detectModerationLabelsRequest = new DetectModerationLabelsRequest() { Image = new Image() { S3Object = new S3Object() { Name = photo, Bucket = bucket }, }, MinConfidence = 60F }; try { DetectModerationLabelsResponse detectModerationLabelsResponse = rekognitionClient.DetectModerationLabels(detectModerationLabelsRequest); Console.WriteLine("Detected labels for " + photo); foreach (ModerationLabel label in detectModerationLabelsResponse.ModerationLabels) { Console.WriteLine("Label: {0}\n Confidence: {1}\n Parent: {2}", label.Name, label.Confidence, label.ParentName); } } catch (Exception e) { Console.WriteLine(e.Message); } }
private void ConvertButton_Click(object sender, RoutedEventArgs e) { var source = ToBytesStream(@"C:\Users\A715-72\Desktop\cnm\AWS2_01\AWS2_01\img\page1\2.jpg"); var client = new AmazonRekognitionClient(); var request = new DetectModerationLabelsRequest { Image = source }; var respone = client.DetectModerationLabels(request); var n = 360; foreach (var label in respone.ModerationLabels) { Label lb = new Label { Content = label.Name, FontSize = 15, Margin = new Thickness(100, n, 0, 0) }; n = n + 20; canvas.Children.Add(lb); } //myLabel.Content = respone.ModerationLabels; }
private void btnLoad_Click(object sender, RoutedEventArgs e) { OpenFileDialog op = new OpenFileDialog(); op.Title = "Select a picture"; op.Filter = "All supported graphics|*.jpg;*.jpeg;*.png|" + "JPEG (*.jpg;*.jpeg)|*.jpg;*.jpeg|" + "Portable Network Graphic (*.png)|*.png"; if (op.ShowDialog() == true) { imgPhoto.Source = new BitmapImage(new Uri(op.FileName)); } String photo = imgPhoto.Source.ToString().Substring(8); Amazon.Rekognition.Model.Image image = new Amazon.Rekognition.Model.Image(); try { using (FileStream fs = new FileStream(photo, FileMode.Open, FileAccess.Read)) { byte[] data = null; data = new byte[fs.Length]; fs.Read(data, 0, (int)fs.Length); image.Bytes = new MemoryStream(data); } } catch (Exception) { return; } AmazonRekognitionClient rekognitionClient = new AmazonRekognitionClient(); DetectModerationLabelsRequest detectModerationLabelsRequest = new DetectModerationLabelsRequest() { Image = image, MinConfidence = 60F }; try { DetectModerationLabelsResponse detectModerationLabelsResponse = rekognitionClient.DetectModerationLabels(detectModerationLabelsRequest); List <Moderation> items = new List <Moderation>(); foreach (ModerationLabel label in detectModerationLabelsResponse.ModerationLabels) { items.Add(new Moderation() { Name = label.Name, Confidence = label.Confidence, ParentName = label.ParentName }); } lvModeration.ItemsSource = items; } catch (Exception) { Console.WriteLine("Error!!!"); return; } }
/// <summary> /// Initiates the asynchronous execution of the DetectModerationLabels operation. /// </summary> /// /// <param name="request">Container for the necessary parameters to execute the DetectModerationLabels 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> /// <seealso href="http://docs.aws.amazon.com/goto/WebAPI/rekognition-2016-06-27/DetectModerationLabels">REST API Reference for DetectModerationLabels Operation</seealso> public Task <DetectModerationLabelsResponse> DetectModerationLabelsAsync(DetectModerationLabelsRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var marshaller = new DetectModerationLabelsRequestMarshaller(); var unmarshaller = DetectModerationLabelsResponseUnmarshaller.Instance; return(InvokeAsync <DetectModerationLabelsRequest, DetectModerationLabelsResponse>(request, marshaller, unmarshaller, cancellationToken)); }
public async Task ExecuteAsync() { var keyName = "TestIMage.png"; var client = new AmazonRekognitionClient(RegionEndpoint.USEast1); var labelsRequest = new DetectLabelsRequest { Image = new Image { S3Object = new S3Object() { Name = keyName, Bucket = "rawimagestc1983" } }, MaxLabels = 10, MinConfidence = 75f }; var moderationRequest = new DetectModerationLabelsRequest { Image = new Image { S3Object = new S3Object() { Name = keyName, Bucket = "rawimagestc1983" } }, MinConfidence = 60f }; var labelsResponse = await client.DetectLabelsAsync(labelsRequest); var inappropriateResponse = await client.DetectModerationLabelsAsync(moderationRequest); Console.WriteLine("Detected Labels for Image"); Console.WriteLine(); foreach (Label label in labelsResponse.Labels) { Console.WriteLine("{0}: {1}", label.Name, label.Confidence); } Console.WriteLine(); foreach (ModerationLabel label in inappropriateResponse.ModerationLabels) { Console.WriteLine("Label: {0}\n Confidence: {1}\n Parent: {2}", label.Name, label.Confidence, label.ParentName); } }
private void btnOCR_Click(object sender, EventArgs e) { if (textURL.Text == "") { MessageBox.Show("Vui lòng chọn hình ảnh để phân tích!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Bitmap bmp = new Bitmap(textURL.Text); //if (bmp.Height>bmp.Width) //{ // // 200, 100 (khổ ngang) => 50,100 (khổ dọc) // var sztmp = pb.Size; // pb.Size = new Size(sztmp.Height, 370); //} pb.Image = bmp; pb.SizeMode = PictureBoxSizeMode.StretchImage; var source = ToByteStream(textURL.Text); var client = new AmazonRekognitionClient(); var request = new DetectModerationLabelsRequest { Image = source, MinConfidence = 50F }; var response = client.DetectModerationLabels(request); if (response.ModerationLabels.Count == 0) { txtRes.Text = "No moderation label be found!"; return; } var tmp = new StringBuilder(); tmp.Append("There are some moderation label has found below: \r\n"); foreach (var label in response.ModerationLabels) { tmp.Append(label.Name); tmp.Append("\t(" + label.Confidence.ToString() + "%)\r\n"); } txtRes.Text = tmp.ToString(); //MessageBox.Show(txtRes.Text); }
public async Task <ModerationResponse> AnalyzeImage(MemoryStream imageStream) { using (var client = new AmazonRekognitionClient(Endpoint)) { var request = new DetectModerationLabelsRequest() { Image = new Image() { Bytes = imageStream }, MinConfidence = 0 //do this so that scores are always returned? }; var awsResponse = await client.DetectModerationLabelsAsync(request); var response = new ModerationResponse(); if (awsResponse.HttpStatusCode != System.Net.HttpStatusCode.OK) { response.Pass = false; response.ModerationScores = new[] { new ModerationScore() { Category = $"ServerError:{awsResponse.HttpStatusCode}", Score = 100 } }; } else { if (awsResponse.ModerationLabels.Any(s => s.Confidence >= 50)) { response.Pass = false; } else { response.Pass = true; } response.ModerationScores = awsResponse.ModerationLabels .Select(m => new ModerationScore() { Category = $"{m.ParentName}:{m.Name}", Score = m.Confidence }); } return(response); } }
private void btn_DetectAdultContent_Click(object sender, EventArgs e) { txt_adultContent.Text = ""; var source = ToBytesStream($"{sourceAdultContent}"); var client = new AmazonRekognitionClient(); var request = new DetectModerationLabelsRequest { Image = source }; var response = client.DetectModerationLabels(request); txt_adultContent.Text = ($"Found {response.ModerationLabels.Count} labels: \n"); foreach (var label in response.ModerationLabels) { txt_adultContent.Text += $"- {label.Name}\n"; } }
public List <ClassificationLabel> GetImageAnalysis(IAmazonRekognition rekognitionClient, string bucket, string s3Path) { var request = new DetectModerationLabelsRequest { Image = new Image { S3Object = new S3Object { Bucket = bucket, Name = s3Path } } }; var response = rekognitionClient.DetectModerationLabelsAsync(request).Result; return(response.ModerationLabels.Select(x => new ClassificationLabel { Confidence = x.Confidence, Name = x.Name, ParentName = x.ParentName }).ToList()); }
// snippet-start:[Rekognition.dotnetv3.DetectModerationLabelsExample] public static async Task Main(string[] args) { string photo = "input.jpg"; string bucket = "bucket"; var rekognitionClient = new AmazonRekognitionClient(); var detectModerationLabelsRequest = new DetectModerationLabelsRequest() { Image = new Image() { S3Object = new S3Object() { Name = photo, Bucket = bucket, }, }, MinConfidence = 60F, }; try { var detectModerationLabelsResponse = await rekognitionClient.DetectModerationLabelsAsync(detectModerationLabelsRequest); Console.WriteLine("Detected labels for " + photo); foreach (ModerationLabel label in detectModerationLabelsResponse.ModerationLabels) { Console.WriteLine($"Label: {label.Name}"); Console.WriteLine($"Confidence: {label.Confidence}"); Console.WriteLine($"Parent: {label.ParentName}"); } } catch (Exception ex) { Console.WriteLine(ex.Message); } }
public DetectModerationLabelsResponse ImageModeration() { Image image = new Image(); using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read)) { byte[] data = null; data = new byte[fs.Length]; fs.Read(data, 0, (int)fs.Length); image.Bytes = new MemoryStream(data); } AmazonRekognitionClient rekognitionClient = new AmazonRekognitionClient(); DetectModerationLabelsRequest detectModerationLabelsRequest = new DetectModerationLabelsRequest() { Image = image, MinConfidence = 60F }; DetectModerationLabelsResponse detectModerationLabelsResponse = rekognitionClient.DetectModerationLabels(detectModerationLabelsRequest); return(detectModerationLabelsResponse); }
private async Task <Boolean> ReadObjectDataAsync(String bucketName, String keyName, float confidence, String pendingimagesbucket, String quarantinedimagesbucket, String templatesBucket) { try { GetObjectRequest request = new GetObjectRequest { BucketName = bucketName, Key = keyName }; using (GetObjectResponse response = await s3EmailsClient.GetObjectAsync(request)) { MimeMessage message = MimeMessage.Load(response.ResponseStream); MailAddressCollection mailAddresses = (MailAddressCollection)message.From; MailAddressCollection sendToAddresses = (MailAddressCollection)message.To; emailTo = mailAddresses[0].Address; if (sendToAddresses[0].ToString().ToLower().Contains("northnorthants")) { west = false; Console.WriteLine("Processing email for North Northants from : " + emailTo); } else { Console.WriteLine("Processing email for West Northants from : " + emailTo); } subject = message.Subject; name = message.From[0].Name; int numOfAttachments = 0; imageCheckPass = true; foreach (MimeEntity attachment in message.Attachments) { if (!(attachment is MessagePart)) { numOfAttachments++; MimePart part = (MimePart)attachment; String fileName = part.FileName; if (!fileName.ToLower().Contains("pdf")) { try { Stream objectStream = new MemoryStream(); part.Content.DecodeTo(objectStream); byte[] attachmentArray = new byte[objectStream.Length]; long attachmentLength = objectStream.Length; using (var imageStream = part.Content.Open()) { PutObjectRequest putRequest = new PutObjectRequest() { InputStream = imageStream, BucketName = pendingimagesbucket, Key = fileName, }; putRequest.Headers.ContentLength = attachmentLength; await s3Client.PutObjectAsync(putRequest); Console.WriteLine("Written to S3 : {0}", fileName); } } catch (Exception error) { Console.WriteLine("ERROR : Processing Image : '{0}' ", error.Message); Console.WriteLine(error.StackTrace); } AmazonRekognitionClient rekognitionClient = new AmazonRekognitionClient(); DetectModerationLabelsRequest detectModerationLabelsRequest = new DetectModerationLabelsRequest() { Image = new Image() { S3Object = new Amazon.Rekognition.Model.S3Object() { Name = fileName, Bucket = pendingimagesbucket }, }, MinConfidence = 60F }; try { DetectModerationLabelsResponse detectModerationLabelsResponse = await rekognitionClient.DetectModerationLabelsAsync(detectModerationLabelsRequest); Console.WriteLine("Detected labels"); foreach (ModerationLabel label in detectModerationLabelsResponse.ModerationLabels) { if (!String.IsNullOrEmpty(label.ParentName)) { Console.WriteLine("Found - Label: {0}\n Confidence: {1}\n Parent: {2}", label.Name, label.Confidence, label.ParentName); if (label.Confidence > confidence) { Console.WriteLine("Rejected - Label: {0}\n Confidence: {1}", label.Name, label.Confidence); imageCheckPass = false; } } } try { if (imageCheckPass) { DeleteObjectRequest deleteRequest = new DeleteObjectRequest { BucketName = pendingimagesbucket, Key = fileName }; await s3Client.DeleteObjectAsync(deleteRequest); } else { Console.WriteLine("Image Rejection Started"); try { Console.WriteLine("Clearing : Deleting " + fileName + " from : " + quarantinedimagesbucket); DeleteObjectRequest clearRequest = new DeleteObjectRequest { BucketName = quarantinedimagesbucket, Key = fileName }; await s3Client.DeleteObjectAsync(clearRequest); } catch (Exception) {} Console.WriteLine("Quarantining : Copying " + fileName + " to : " + quarantinedimagesbucket); CopyObjectRequest copyRequest = new CopyObjectRequest { SourceBucket = pendingimagesbucket, SourceKey = fileName, DestinationBucket = quarantinedimagesbucket, DestinationKey = fileName }; await s3Client.CopyObjectAsync(copyRequest); Console.WriteLine("Deleting : Deleting " + fileName + " from : " + pendingimagesbucket); DeleteObjectRequest deleteRequest = new DeleteObjectRequest { BucketName = pendingimagesbucket, Key = fileName }; await s3Client.DeleteObjectAsync(deleteRequest); Console.WriteLine("Deleting : Deleting " + fileName + " from : " + pendingimagesbucket); Console.WriteLine("Image Rejection Ended"); } } catch (Exception error) { Console.WriteLine("ERROR : Moving/Deleting Image : " + error.Message); Console.WriteLine(error.StackTrace); } } catch (Exception e) { Console.WriteLine(e.Message); } } } else { Console.WriteLine("Ignoring attachment"); } } Console.WriteLine("Num of attachments : {0}", numOfAttachments); emailBody = message.HtmlBody; for (int currentHeader = 0; currentHeader < message.Headers.Count; currentHeader++) { if (message.Headers[currentHeader].Field.ToString().Equals("X-SES-Spam-Verdict") && message.Headers[currentHeader].Value.ToString().Equals("PASS")) { spamCheckPass = true; } if (message.Headers[currentHeader].Field.ToString().Equals("X-SES-Virus-Verdict") && message.Headers[currentHeader].Value.ToString().Equals("PASS")) { virusCheckPass = true; } } if (spamCheckPass && virusCheckPass && imageCheckPass) { emailPassedChecks = true; } else { emailBody = "Failed text"; try { GetObjectRequest objectRequest = new GetObjectRequest { BucketName = templatesBucket, Key = "email-unsafe-rejection.txt" }; using (GetObjectResponse objectResponse = await s3TemplatesClient.GetObjectAsync(objectRequest)) using (Stream responseStream = objectResponse.ResponseStream) using (StreamReader reader = new StreamReader(responseStream)) { emailBody = reader.ReadToEnd(); } if (!virusCheckPass) { emailBody = emailBody.Replace("AAA", "a virus"); } else if (!spamCheckPass) { emailBody = emailBody.Replace("AAA", "spam"); } else if (!imageCheckPass) { emailBody = emailBody.Replace("AAA", "inappropriate content in attachments"); } else { emailBody = emailBody.Replace("AAA", "unknown"); } emailBody = emailBody.Replace("DDD", name); } catch (AmazonS3Exception e) { Console.WriteLine("ERROR : Reading Email : '{0}' when reading rejection template", e.Message); } catch (Exception e) { Console.WriteLine("ERROR : An Unknown encountered : '{0}' when reading rejection template", e.Message); } } } } catch (AmazonS3Exception error) { Console.WriteLine("ERROR : Reading Email : '{0}' when reading email", error.Message); Console.WriteLine(error.StackTrace); } catch (Exception error) { Console.WriteLine("ERROR : An Unknown encountered : {0}' when reading email", error.Message); Console.WriteLine(error.StackTrace); } return(emailPassedChecks); }