OpenCV: Difference between revisions
Appearance
	
	
Tag: visualeditor  | 
				|||
| Line 3: | Line 3: | ||
==Installation==  | ==Installation==  | ||
* Download Python 3  | |||
*Download Python 3  | |||
=== Free algorithms only ===  | |||
<pre>  | <pre>  | ||
pip install opencv-python  | pip install opencv-python opencv-contrib-python  | ||
</pre>  | </pre>  | ||
=== Non-free Algorithms ===  | |||
Compile [https://github.com/opencv/opencv OpenCV] from source alongside [https://github.com/opencv/opencv_contrib OpenCV-contrib]  | |||
See [https://www.pyimagesearch.com/2018/08/15/how-to-install-opencv-4-on-ubuntu/ https://www.pyimagesearch.com/2018/08/15/how-to-install-opencv-4-on-ubuntu] for instructions.  | |||
==Usage==  | ==Usage==  | ||
===Getting Started===  | ===Getting Started===  | ||
<syntaxhighlight lang="python>  | <syntaxhighlight lang="python">  | ||
import cv2  | import cv2  | ||
| Line 90: | Line 98: | ||
==Resources==  | ==Resources==  | ||
* [https://docs.opencv.org/master/d6/d00/tutorial_py_root.html OpenCV Python Tutorial]  | |||
*[https://docs.opencv.org/master/d6/d00/tutorial_py_root.html OpenCV Python Tutorial]  | |||
Revision as of 15:02, 28 April 2020
OpenCV is a very popular computer vision and image processing library.
There are bindings for C++, Java, JavaScript, and Python
Installation
- Download Python 3
 
Free algorithms only
pip install opencv-python opencv-contrib-python
Non-free Algorithms
Compile OpenCV from source alongside OpenCV-contrib
See https://www.pyimagesearch.com/2018/08/15/how-to-install-opencv-4-on-ubuntu for instructions.
Usage
Getting Started
import cv2
# cv2.IMREAD_ANYCOLOR = 4
# cv2.IMREAD_ANYDEPTH = 2
# cv2.IMREAD_COLOR = 1
# cv2.IMREAD_GRAYSCALE = 0
# Use cv2.IMREAD_GRAYSCALE to read in grayscale
my_image = cv2.imread("my_image.png", cv2.IMREAD_GRAYSCALE)
# Perform some modification
# Do your machine learning here
# Write your output image
cv2.imwrite("my_modified_image.png", my_image)
Resizing an Image
import numpy as np
import cv2
img = cv2.imread('messi5.jpg')
new_img = cv2.resize(img, (500,200), interpolation = cv.INTER_CUBIC)
Video
Reading Video
video_capture = cv2.VideoCapture(path.join(videos_folder, video_filename))
if not video_capture.isOpened():
    print("Error opening video stream or file")
    sys.exit(0)
frame_num = 0
while video_capture.isOpened() and frame_num < 30:
    ret, frame = video_capture.read()
    if ret:
        cv2.imshow('Frame', frame)
        frame_num = frame_num + 1
        if cv2.waitKey(25) & 0xFF == ord('q'):
            break
    else:
        break
- Parameters
 
# Resolution
width = int(video_capture.get(cv2.CAP_PROP_FRAME_WIDTH))
height = int(video_capture.get(cv2.CAP_PROP_FRAME_HEIGHT))
total_frames = int(video_capture.get(cv2.CAP_PROP_FRAME_COUNT))
frame_pos = int(video_capture.get(cv2.CAP_PROP_POS_FRAMES))
Writing Video
C++ Video Write
Note that OpenCV does not handle audio.
output_video = cv2.VideoWriter()
codec = cv2.VideoWriter_fourcc(*"avc1")
fps = 15
image_size = (100, 100)
output_video.open("video_output.mp4", codec, fps, image_size, True)
if not output_video.isOpened():
    print("Error opening output video")
# Write all of your frames
# while have_frames:
#   output_video.write(my_frame)
# Release the video
output_video.release()