brew install cmake pkg-config
brew install jpeg libpng libtiff openexr
brew install eigen tbb
brew install python3
cd ~
git clone https://github.com/Itseez/opencv.git
cd opencv
git checkout 3.1.0
cd ~
git clone https://github.com/Itseez/opencv_contrib
cd opencv_contrib
git checkout 3.1.0
cd ~/opencv
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D PYTHON3_PACKAGES_PATH=~/.virtualenvs/cv3/lib/python3.4/site-packages \
-D PYTHON3_LIBRARY=/usr/local/Cellar/python3/3.5.2_2/Frameworks/Python.framework/Versions/3.5/lib/libpython3.5m.dylib \
-D PYTHON3_INCLUDE_DIR=/usr/local/Cellar/python3/3.5.2_2/Frameworks/Python.framework/Versions/3.5/include/python3.5m \
-D INSTALL_C_EXAMPLES=OFF \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D BUILD_EXAMPLES=ON \
-D BUILD_opencv_python3=ON \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules ..
num_cores=`sysctl -n hw.ncpu`
make -j$num_cores
brew -v install opencv3 --HEAD --with-python3
ln -s /usr/local/Cellar/opencv3/HEAD-b38d29b_4/lib/python3.5/site-packages/cv2.cpython-35m-darwin.so /Users/vruiz/.virtualenvs/cv3/lib/python3.5/site-packages/cv2.so
sudo apt-get install libopencv-dev python-opencv
pip install opencv-python
In [ ]:
import cv2
import numpy as np
import urllib.request
from matplotlib import pyplot as plt
%matplotlib inline
HTTP_response = urllib.request.urlopen('http://www.hpca.ual.es/~vruiz/images/lena.png')
arr = np.asarray(bytearray(HTTP_response.read()), dtype=np.uint8)
BGR = cv2.imdecode(arr,-1)
RGB = cv2.cvtColor(BGR, cv2.COLOR_BGR2RGB)
plt.imshow(RGB)
In [ ]:
Y = cv2.cvtColor(BGR, cv2.COLOR_BGR2YCrCb)[:,:,0]
plt.imshow(Y, cmap='gray')
In [ ]:
template = Y[200:300,200:300]
w, h = template.shape
plt.imshow(template, cmap="gray")
In [ ]:
res = cv2.matchTemplate(Y, template, cv2.TM_CCOEFF)
plt.imshow(res, cmap="gray")
In [ ]:
min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res)
top_left = max_loc
bottom_right = (top_left[0] + w, top_left[1] + h)
In [ ]:
print(bottom_right)
cv2.rectangle(RGB, top_left, bottom_right, (0,255,0), 3)
plt.imshow(RGB, cmap="gray")