public virtual IImageDescription GetImageDescription(MediaItem m, string language) { ICognitiveSearchResult csr = Searcher.GetAnalysis(m.ID.ToString(), language, m.Database.Name); Description d = csr ?.VisionAnalysis ?.Description ?? new Description(); return(ImageDescriptionFactory.Create(d, m.Alt, m.ID.ToString(), m.Database.Name, language)); }
public virtual IImageDescription GetImageDescription(MediaItem m, string language) { ICognitiveImageSearchResult csr = GetCognitiveSearchResult(m.ID.ToString(), language, m.Database.Name); Description d = csr ?.VisionAnalysis ?.Description; if (d == null) { return(null); } return(ImageDescriptionFactory.Create(d, m.Alt, m.ID.ToString(), m.Database.Name, language)); }
public virtual IImageDescription GetImageDescription(MediaItem m, string language) { IImageSearchResult csr = GetSearchResult(m.ID.ToString(), language, m.Database.Name); if (csr == null) { return(null); } List <string> descriptions = new List <string>(); var captions = csr .VisionAnalysis ?.Description ?.Captions .Where(a => a.Confidence > Settings.TagConfidenceThreshold) .Select(a => a.Text) .ToList(); var hasCaptions = captions != null && captions.Any(); var hasPeople = csr.People != null && csr.People.Any(); if (hasCaptions && hasPeople) { descriptions.Add($"{string.Join(", ", csr.People)} - {captions.First()}"); } else if (hasCaptions) { descriptions.AddRange(captions); } else if (hasPeople) { descriptions.Add(string.Join(", ", csr.People)); } return(ImageDescriptionFactory.Create(descriptions, m.Alt)); }