Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
|
wiki2:opencv [2015/10/17 10:52] alfred [Use in Python] |
wiki2:opencv [2020/05/09 09:25] (actual) |
||
|---|---|---|---|
| Línea 12: | Línea 12: | ||
| <code python> | <code python> | ||
| - | import cv2 | ||
| import numpy as np | import numpy as np | ||
| - | from matplotlib import pyplot as plt | + | import cv2 |
| cap = cv2.VideoCapture(0) | cap = cv2.VideoCapture(0) | ||
| - | while True: | + | |
| - | ret, img = cap.read() | + | while(True): |
| - | color = ('b','g','r') | + | # Capture frame-by-frame |
| - | for i,col in enumerate(color): | + | ret, frame = cap.read() |
| - | histr = cv2.calcHist([img],[i],None,[256],[0,256]) | + | |
| - | plt.plot(histr,color = col) | + | # Our operations on the frame come here |
| - | plt.xlim([0,256]) | + | gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) |
| - | plt.show() | + | |
| + | # Display the resulting frame | ||
| + | cv2.imshow('frame',gray) | ||
| + | if cv2.waitKey(1) & 0xFF == ord('q'): | ||
| + | break | ||
| + | |||
| + | # When everything done, release the capture | ||
| cap.release() | cap.release() | ||
| + | cv2.destroyAllWindows() | ||
| </code> | </code> | ||
| ==== Use in C++ ==== | ==== Use in C++ ==== | ||
| Línea 45: | Línea 51: | ||
| } | } | ||
| </code> | </code> | ||
| + | ===== Basic with images ===== | ||
| + | ==== Create black image ==== | ||
| + | <code python> | ||
| + | import numpy as np | ||
| + | blank_image = np.zeros((height,width,3), np.uint8) | ||
| + | </code> | ||
| + | ==== Obtain ROI ==== | ||
| + | <code python> | ||
| + | >>> ball = img[280:340, 330:390] | ||
| + | >>> img[273:333, 100:160] = ball | ||
| + | </code> | ||
| + | |||
| + | ==== Write an image inside another ==== | ||
| + | <code python> | ||
| + | black_image[:height, :width] = frame[:,:] | ||
| + | </code> | ||
| + | |||
| + | ==== Obtain the average color ==== | ||
| + | <code python> | ||
| + | color = np.mean(m_roi, axis=0) | ||
| + | </code> | ||
| + | |||
| + | ==== Draw figures ==== | ||
| + | <code python> | ||
| + | cv2.rectangle(black_image, (pos_x, pos_y), (pos_x + size_x, pos_y + size_y), (255, 255, 255)) | ||
| + | </code> | ||
| + | ===== Video Capture ===== | ||
| + | You can capture images and obtain the properties: | ||
| + | <code python> | ||
| + | cap = cv2.VideoCapture(0) | ||
| + | width, height = cap.get(cv2.cv.CV_CAP_PROP_FRAME_WIDTH), cap.get(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT) | ||
| + | </code> | ||
| + | VideoCapture properties in C++ are: CV_CAP_PROP_FRAME_WIDTH... | ||
| + | |||
| + | ===== Others ===== | ||
| + | ==== Get a sample of colors ==== | ||
| + | <code python> | ||
| + | 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, :] | ||
| + | </code> | ||
| + | |||
| + | ==== Change the shape of a num.array ==== | ||
| + | Use ''reshape''. | ||