def search_insights_token_with_crop_area(subscription_key): """VisualSearchInsightsTokenWithCropArea. This will send an image insights token in the knowledgeRequest parameter, along with a cropArea object, and print out the imageInsightsToken, the number of tags, the number of actions, and the first actionType. """ client = VisualSearchClient(endpoint="https://api.cognitive.microsoft.com", credentials=CognitiveServicesCredentials(subscription_key)) image_insights_token = "bcid_113F29C079F18F385732D8046EC80145*ccid_oV/QcH95*mid_687689FAFA449B35BC11A1AE6CEAB6F9A9B53708*thid_R.113F29C079F18F385732D8046EC80145" crop_area = CropArea(top=0.1, bottom=0.5, left=0.1, right=0.9) knowledge_request = VisualSearchRequest( image_info=ImageInfo( image_insights_token=image_insights_token, crop_area=crop_area ), ) # You need to pass the serialized form of the model knowledge_request = json.dumps(knowledge_request.serialize()) print("Search visual search request with url of dog image") result = client.images.visual_search(knowledge_request=knowledge_request) if not result: print("No visual search result data.") return # Visual Search results if result.image.image_insights_token: print("Uploaded image insights token: {}".format( result.image.image_insights_token)) else: print("Couldn't find image insights token!") # List of tags if result.tags: first_tag = result.tags[0] print("Visual search tag count: {}".format(len(result.tags))) # List of actions in first tag if first_tag.actions: first_tag_action = first_tag.actions[0] print("First tag action count: {}".format(len(first_tag.actions))) print("First tag action type: {}".format( first_tag_action.action_type)) else: print("Couldn't find tag actions!") else: print("Couldn't find image tags!")
def search_image_binary_with_crop_area(subscription_key): """VisualSearchImageBinaryWithCropArea. This will send an image binary in the body of the post request, along with a cropArea object, and print out the imageInsightsToken, the number of tags, the number of actions, and the first actionType. """ client = VisualSearchClient( endpoint="https://api.cognitive.microsoft.com", credentials=CognitiveServicesCredentials(subscription_key)) image_path = os.path.join(TEST_IMAGES, "image.jpg") with open(image_path, "rb") as image_fd: crop_area = CropArea(top=0.1, bottom=0.5, left=0.1, right=0.9) knowledge_request = VisualSearchRequest(image_info=ImageInfo( crop_area=crop_area)) # You need to pass the serialized form of the model knowledge_request = json.dumps(knowledge_request.serialize()) print("Search visual search request with binary of dog image") result = client.images.visual_search( image=image_fd, knowledge_request=knowledge_request) if not result: print("No visual search result data.") return # Visual Search results if result.image.image_insights_token: print("Uploaded image insights token: {}".format( result.image.image_insights_token)) else: print("Couldn't find image insights token!") # List of tags if result.tags: first_tag = result.tags[0] print("Visual search tag count: {}".format(len(result.tags))) # List of actions in first tag if first_tag.actions: first_tag_action = first_tag.actions[0] print("First tag action count: {}".format( len(first_tag.actions))) print("First tag action type: {}".format( first_tag_action.action_type)) else: print("Couldn't find tag actions!") else: print("Couldn't find image tags!")
def search_url_with_filters(subscription_key): """VisualSearchUrlWithFilters. This will send an image url in the knowledgeRequest parameter, along with a \"site:www.bing.com\" filter, and print out the imageInsightsToken, the number of tags, the number of actions, and the first actionType. """ client = VisualSearchClient(endpoint="https://api.cognitive.microsoft.com", credentials=CognitiveServicesCredentials(subscription_key)) image_url = "https://images.unsplash.com/photo-1512546148165-e50d714a565a?w=600&q=80" filters = Filters(site="www.bing.com") knowledge_request = VisualSearchRequest( image_info=ImageInfo(url=image_url), knowledge_request=KnowledgeRequest(filters=filters) ) # You need to pass the serialized form of the model knowledge_request = json.dumps(knowledge_request.serialize()) print("Search visual search request with url of dog image") result = client.images.visual_search(knowledge_request=knowledge_request) if not result: print("No visual search result data.") return # Visual Search results if result.image.image_insights_token: print("Uploaded image insights token: {}".format( result.image.image_insights_token)) else: print("Couldn't find image insights token!") # List of tags if result.tags: first_tag = result.tags[0] print("Visual search tag count: {}".format(len(result.tags))) # List of actions in first tag if first_tag.actions: first_tag_action = first_tag.actions[0] print("First tag action count: {}".format(len(first_tag.actions))) print("First tag action type: {}".format( first_tag_action.action_type)) else: print("Couldn't find tag actions!") else: print("Couldn't find image tags!")
def search_url_with_json(subscription_key): """VisualSearchURLWithJSON. This will send a visual search request in JSON form, and print out the imageInsightsToken, the number of tags, and the first actionCount and actionType. """ client = VisualSearchClient(endpoint="https://api.cognitive.microsoft.com", credentials=CognitiveServicesCredentials(subscription_key)) try: """ The visual search request can be passed in as a JSON string The image is specified via URL in the ImageInfo object, along with a crop area as shown below: { "imageInfo": { "url": "https://images.unsplash.com/photo-1512546148165-e50d714a565a?w=600&q=80", "cropArea": { "top": 0.1, "bottom": 0.5, "left": 0.1, "right": 0.9 } }, "knowledgeRequest": { "filters": { "site": "www.bing.com" } } } """ visual_search_request_json = "{\"imageInfo\":{\"url\":\"https://images.unsplash.com/photo-1512546148165-e50d714a565a?w=600&q=80\",\"cropArea\":{\"top\":0.1,\"bottom\":0.5,\"left\":0.1,\"right\":0.9}},\"knowledgeRequest\":{\"filters\":{\"site\":\"www.bing.com\"}}}" # An image binary is not necessary here, as the image is specified via URL visual_search_results = client.images.visual_search( knowledge_request=visual_search_request_json) print("Search visual search request with url of dog image") if not visual_search_results: print("No visual search result data.") else: # Visual Search results if visual_search_results.image.image_insights_token: print("Uploaded image insights token: {}".format( visual_search_results.image.image_insights_token)) else: print("Couldn't find image insights token!") # List of tags if visual_search_results.tags: first_tag_result = visual_search_results.tags[0] print("Visual search tag count: {}".format( len(visual_search_results.tags))) # List of actions in first tag if first_tag_result.actions: first_action_result = first_tag_result.actions[0] print("First tag action count: {}".format( len(first_tag_result.actions))) print("First tag action type: {}".format( first_action_result.action_type)) else: print("Couldn't find tag actions!") else: print("Couldn't find image tags!") except Exception as e: print("Encountered exception. " + str(e))
from azure.cognitiveservices.search.visualsearch.models import ( VisualSearchRequest, CropArea, ImageInfo, Filters, KnowledgeRequest, ) from msrest.authentication import CognitiveServicesCredentials subscription_key = '9cd2655c2ff34fd2b28cbd330b583140' PATH = 'C:\\Users\\USER\\azure-cognitive-samples\\mytestenv\\TestImages\\' image_path2 = os.path.join(PATH, "image.jpg") image_path = "jean_test.jpeg" client = VisualSearchClient( endpoint="https://api.cognitive.microsoft.com", credentials=CognitiveServicesCredentials(subscription_key)) with open(image_path, "rb") as image_fd: # You need to pass the serialized form of the model knowledge_request = json.dumps(VisualSearchRequest().serialize()) print("\r\nSearch visual search request with binary of dog image") result = client.images.visual_search(image=image_fd, knowledge_request=knowledge_request) if not result: print("No visual search result data.") # Visual Search results if result.image.image_insights_token: