Our query images will come from a web search. Before we start implementing the search functionality, let's write some helper functions, which let us fetch images via the Requests library and convert them to an OpenCV-compatible format. Because this functionality is highly reusable, we will put it in a module of static utility functions. Let's create a file called RequestsUtils.py
and import OpenCV, NumPy, and Requests, as follows:
import numpy import cv2 import requests import sys
As a global variable, let's store HEADERS
, a dictionary of headers that we will use while making web requests. Some servers reject requests that appear to come from a bot. To improve the chance of our requests being accepted, let's set the 'User-Agent'
header to a value that mimics a web browser, as follows:
# Spoof a browser's User-Agent string. # Otherwise, some sites will reject us as a bot. HEADERS = { 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; ' + \ 'rv:25...