To add cost-effective image analysis to your applications, this article will walk you through Azure API, how to obtain a subscription key to access Azure API, and how to make requests to Azure REST API using an IDE software with REST Client Feature.

Was ist eine Azure-API?

Azure is a cloud computing platform offered by Microsoft with more than 200 available services. Azure provides various client libraries and a REST API to access those services. There’s a free tier to get you up and running which allows you to access several services free many of which remain free as long as you don’t exceed some quite generous monthly limits. We are going to use the “Cognitive Search” service to perform Image analysis. The Cognitive Search service is an always-free tier so you should never need to pay for it.

Wie erhalten wir einen Abonnementschlüssel für den Zugriff auf die Azure-API?

To access the Azure REST API, we need a subscription key. A subscription key is a key assigned to a ‘resource’. So we need to create a resource first. To create a resource, you need an active Azure Subscription. Please visit this link to create a subscription:

https://azure.microsoft.com/free/cognitive-services/

Sobald Sie das Azure-Abonnement eingerichtet haben, müssen Sie eine Computer Vision-Ressource erstellen. Stellen Sie sicher, dass Sie die richtige geografische Region ausgewählt haben, da Sie dies später nicht ändern können. Besuchen Sie diesen Link, um die Ressource zu erstellen:

https://portal.azure.com/#create/Microsoft.CognitiveServicesComputerVision

Um den Abonnementschlüssel Ihrer Ressource zu erhalten, öffnen Sie die Ressource und gehen Sie zu „Schlüssel und Endpunkte“. Dort sehen Sie zwei Schlüssel und den Speicherort, an dem unser REST-API-Aufruf ausgeführt werden muss.

Wie stelle ich mit dem Delphi REST-Client eine Anfrage an die Azure REST-API?

Das Aufrufen der REST-API vom Delphi-Client aus ist einfach. Sie müssen nur wenige Parameter einstellen und können diese auch in der Entwurfszeit ausführen. Lassen Sie eine DEMO-Anwendung machen. Ziehen Sie diese Komponenten zunächst per Drag & Drop in ein Forum.

TRESTClient

TRESTRequest

TRESTResponse

Platzieren Sie außerdem einige Eingabesteuerelemente, um die API-URL, den Abonnementschlüssel und die Bild-URL abzurufen. Platziere a TButton um die Anfrage zu starten. Der Inhaltstyp des REST-Clients muss „Anwendung / json“. Legen Sie nun die Client- und Antworteigenschaften von fest TRESTRequest Komponente an den Client und Antwortkomponenten, die wir zuvor platziert haben. Stellen Sie die Methode auch auf „rmPOST“.

Der Code für die Schaltfläche Start sieht folgendermaßen aus:

Prozedur TfrmMain.btnStartClick (Absender: TObject); var lparam: Trestrequestparameter; imgProcessed: bool; jsonObj, jsonStatus: TJSONObject; begin memResponse.Lines.Clear; RESTClient.BaseURL: = edAPIURL.Text; RESTRequest.Method: = rmpost; imgProcessed: = false; versuchen Sie RESTRequest.Params.Clear; RESTResponse.RootElement: = ''; lparam: = RESTRequest.Params.AddItem; lparam.name: = 'Ocp-Apim-Subscription-Key'; lparam.Value: = edSubKey.Text; lparam.ContentType: = ctNone; lparam.Kind: = pkHTTPHEADER; // Dieser ist wichtig, sonst wird '==' url-codiert. Lparam.Options: = [poDoNotEncode];
     lparam: = RESTRequest.Params.AddItem; 
     lparam.name: = 'data'; 
     lparam.Value: = '{"url": "' + edImgURL.Text + '"}'; 
     lparam.ContentType: = ctAPPLICATION_JSON; 
     lparam.Kind: = pkGETorPOST; 
     RESTRequest.Execute; 
     Wenn nicht RESTResponse.Status.Success, dann showmessage (RESTResponse.StatusText + '' + inttostr (RESTResponse.StatusCode)) 
sonst 
Start   
    memResponse.Lines.Add (RESTResponse.JSONText); 
Ende;
endlich enden; Ende;

Dieser Code fügt der TRESTRequest einen neuen Parameter hinzu und legt den Abonnementschlüssel fest. Der Abonnementschlüssel muss als HTTP-Header übergeben werden und der Name sollte „Ocp-Apim-Abonnement-Schlüssel“. Der Wertparameter ist der Abonnementschlüssel, den wir zuvor kopiert haben. Es ist auch wichtig, die Option „poDoNotEncode“, Andernfalls wird der Schlüssel verschlüsselt. Auch die Basis-URL der TRESTClient muss eingestellt werden. Wenn wir die Basis-URL des Azure-Clients eingeben, müssen wir die Region unserer Ressource berücksichtigen. Es sollte die Subdomain der URL sein. Die Basis-URL sieht folgendermaßen aus.

https://eastus.api.cognitive.microsoft.com/vision/v3.2/analyze?visualFeatures=Description

Ersetzen “eastus”Mit Ihrer Region oder wird es nicht Arbeit. Es gibt auch viele Parameter, die Sie über diese URL übergeben können. Bitte besuchen Sie diesen Link, um alle Parameter zu finden.

https://docs.microsoft.com/en-us/azure/cognitive-services/computer-vision/vision-api-how-to-topics/howtocallvisionapi

In dieser Demo haben wir bestanden “visualFeatures = Beschreibung”, Die unser Bild in einem Satz beschreiben wird. Außerdem müssen wir unsere Bild-URL im JSON-Format übergeben. Fügen Sie dazu dem Parameter einen neuen Parameter hinzu TRESTRequest und setzen Sie den Inhaltstyp auf „ctAPPLICATION_JSON”, Setze den Namen auf“URL”Und der Wert in diesem Format:

{"url": "IMAGE_URL"}

Unsere endgültige Bewerbung sollte so aussehen.

Bildanalyse-API in Aktion

Sie können die DEMO-Anwendung von GitHub herunterladen: https://github.com/checkdigits/ImageAnalysisClient_example


Probieren Sie es selbst aus und sehen Sie, ob es die schnellste Möglichkeit ist, Ihren Windows-, MacOS- und Mobilanwendungen eine Bildanalyse hinzuzufügen.

schließen

Reduzieren Sie die Entwicklungszeit und kommen Sie mit RAD Studio, Delphi oder C ++ Builder schneller auf den Markt.
Design. Code. Kompilieren. Bereitstellen.
Kostenlos testen   Upgrade heute

   Kostenlose Delphi Community Edition   Kostenlose C ++ Builder Community Edition