Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aviso
Em 30 de outubro de 2020, as APIs de Pesquisa do Bing foram transferidas dos serviços de IA do Azure para os Serviços de Pesquisa do Bing. Esta documentação é fornecida apenas para referência. Para obter a documentação atualizada, consulte a documentação da API de pesquisa do Bing. Para obter instruções sobre como criar novos recursos do Azure para a pesquisa do Bing, consulte Criar um recurso de Pesquisa do Bing por meio do Azure Marketplace.
Há múltiplos endpoints disponíveis por meio da API de Pesquisa de Imagem do Bing. O /details
endpoint aceita uma solicitação POST com uma imagem e pode retornar uma variedade de detalhes sobre a imagem. Este aplicativo C# envia uma imagem usando essa API e exibe os detalhes retornados pelo Bing, que são objetos JSON, como o seguinte:
Este tutorial explica como:
- Usar o ponto de extremidade de Pesquisa de Imagem
/details
em uma solicitaçãoPOST
- Especificar cabeçalhos para a solicitação
- Usar parâmetros de URL para especificar resultados
- Carregar os dados da imagem e enviar a solicitação
POST
- Imprimir os resultados JSON no console
Pré-requisitos
- Qualquer edição do Visual Studio 2017 ou posterior.
Construir uma solicitação de pesquisa de detalhes de imagem
A seguir está o /details
endpoint, que aceita solicitações POST com dados de imagem no corpo do pedido. Você pode usar o seguinte ponto de extremidade global, ou o ponto de extremidade do subdomínio personalizado exibido no portal do Azure para seu recurso.
https://api.cognitive.microsoft.com/bing/v7.0/images/details
Ao construir a URL de solicitação de pesquisa, o modules
parâmetro segue o ponto de extremidade acima e especifica os tipos de detalhes que os resultados conterão:
modules=All
-
modules=RecognizedEntities
(pessoas ou locais visíveis na imagem)
Especifique modules=All
na solicitação POST para obter o texto JSON que inclui o seguinte:
-
bestRepresentativeQuery
- uma consulta do Bing que retorna imagens semelhantes à imagem carregada -
detectedObjects
- objetos encontrados na imagem -
image
- metadados para a imagem -
imageInsightsToken
- um token para solicitações GET posteriores que obtêmRecognizedEntities
(pessoas ou locais visíveis na imagem) da imagem. -
imageTags
- tags para a imagem -
pagesIncluding
- Páginas da Web que incluem a imagem -
relatedSearches
– pesquisa com base em detalhes na imagem. -
visuallySimilarImages
– imagens semelhantes na Web.
Especifique modules=RecognizedEntities
na solicitação POST somente para obter imageInsightsToken
, que pode ser usada em uma solicitação GET subsequente para identificar pessoas ou locais na imagem.
Criar um objeto WebClient e definir cabeçalhos para a solicitação de API
Crie um WebClient
objeto e defina os cabeçalhos. Todas as solicitações para a API de Pesquisa do Bing exigem uma Ocp-Apim-Subscription-Key
. Uma POST
solicitação para carregar uma imagem também deve especificar ContentType: multipart/form-data
.
WebClient client = new WebClient();
client.Headers["Ocp-Apim-Subscription-Key"] = accessKey;
client.Headers["ContentType"] = "multipart/form-data";
Carregar a imagem e exibir os resultados
O método UpLoadFile()
da classe WebClient
formata dados para a solicitação POST
, incluindo a formatação de RequestStream
e a chamada de HttpWebRequest
.
Chame WebClient.UpLoadFile()
com o /details
endpoint e o arquivo de imagem a ser carregado. Use a resposta JSON para inicializar uma instância da SearchResult
estrutura e armazenar a resposta.
const string uriBase = "https://api.cognitive.microsoft.com/bing/v7.0/images/details";
// The image to upload. Replace with your file and path.
const string imageFile = "your-image.jpg";
byte[] resp = client.UploadFile(uriBase + "?modules=All", imageFile);
var json = System.Text.Encoding.Default.GetString(resp);
// Create result object for return
var searchResult = new SearchResult()
{
jsonResult = json,
relevantHeaders = new Dictionary<String, String>()
};
Essa resposta JSON pode ser impressa no console.
Usar um token de insights de imagem em uma solicitação
Para usar o ImageInsightsToken
retornado com os resultados de um POST
, você pode adicioná-lo a uma requisição GET
. Por exemplo:
https://api.cognitive.microsoft.com/bing/v7.0/images/details?InsightsToken="bcid_A2C4BB81AA2C9EF8E049C5933C546449*ccid_osS7gaos*mid_BF7CC4FC4A882A3C3D56E644685BFF7B8BACEAF2
Se houver pessoas ou locais identificáveis na imagem, essa solicitação retornará informações sobre elas.