====== OpenCV ======
===== Install & use =====
==== Install ====
sudo apt-get install libopencv-dev python-opencv
==== Use in Python ====
import numpy as np
import cv2
cap = cv2.VideoCapture(0)
while(True):
# Capture frame-by-frame
ret, frame = cap.read()
# Our operations on the frame come here
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
# Display the resulting frame
cv2.imshow('frame',gray)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# When everything done, release the capture
cap.release()
cv2.destroyAllWindows()
==== Use in C++ ====
g++ -ggdb `pkg-config --cflags opencv` -o `basename opencvtest.cpp .cpp` opencvtest.cpp `pkg-config --libs opencv`
#include
using namespace cv;
int main()
{
Mat img = imread("/home/alfred/Desktop/screen.jpg",CV_LOAD_IMAGE_COLOR);
imshow("opencvtest",img);
waitKey(0);
return 0;
}
===== Basic with images =====
==== Create black image ====
import numpy as np
blank_image = np.zeros((height,width,3), np.uint8)
==== Obtain ROI ====
>>> ball = img[280:340, 330:390]
>>> img[273:333, 100:160] = ball
==== Write an image inside another ====
black_image[:height, :width] = frame[:,:]
==== Obtain the average color ====
color = np.mean(m_roi, axis=0)
==== Draw figures ====
cv2.rectangle(black_image, (pos_x, pos_y), (pos_x + size_x, pos_y + size_y), (255, 255, 255))
===== Video Capture =====
You can capture images and obtain the properties:
cap = cv2.VideoCapture(0)
width, height = cap.get(cv2.cv.CV_CAP_PROP_FRAME_WIDTH), cap.get(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT)
VideoCapture properties in C++ are: CV_CAP_PROP_FRAME_WIDTH...
===== Others =====
==== Get a sample of colors ====
idx_x = np.random.randint(colorset.shape[0], size=_size)
idx_y = np.random.randint(colorset.shape[1], size=_size)
sample = colorset[idx_y, idx_x, :]
==== Change the shape of a num.array ====
Use ''reshape''.