官术网_书友最值得收藏!

  • Practical Computer Vision
  • Abhinav Dadhich
  • 339字
  • 2021-06-30 18:54:45

Opencv FAQs

Though we saw an introductory OpenCV programs in previous chapter, we will see some more frequently used code snippets that will be used throughout this book.

  • Let's begin with importing OpenCV and will print the version of OpenCV used:
import cv2
print(cv2.__version__)
  • We can read an image from a file as: 
 img = cv2.imread('flower.png')

The previous snippet will decode an image stored in common formats such as .jpg,  .png , .jpeg , .tiff , .pgm, and so on. using image codecs either installed with OpenCV or available on the platform. If there are no codecs available, then OpenCV will not be able to read image or write image to a file. So, it is necessary for the user to install codecs on a non-supported platforms such as embedded devices.

We can write an image to file as:

cv2.imwrite('image.png', img)

In writing a file also there is need for image codecs which are generally installed with OpenCV. We can write the image with file formats such as JPG, PNG, JPEG, TIFF, and so on. 

Processing a video includes opening a video file and applying algorithms on each frame. We will first initialize the source of frames which can be a video file or an attached USB camera as: 

# to use default usb camera set the value to 0
video_capture = cv2.VideoCapture(0)

Or we can also write it as follows:

# to use video file, set filename 
video_capture = cv2.VideoCapture('video.avi')

Similar to image reading and writing, video reading will also require codecs which are installed with OpenCV or available from the OS. Once the source is setup we can continue processing each frame as:

while(True):
# get each frame
ret, frame = video_capture.read()

# if no frame available then quit
if not ret:
print("Frame not available")
break

# show read frame in window
cv2.imshow('frame', frame)

# escape the loop on pressing 'q'
if cv2.waitKey(1) & 0xFF == ord('q'):
break

Here cv2.imshow is to display image and cv2.waitKey() is time delay in the execution. 

主站蜘蛛池模板: 铜梁县| 巩留县| 东乌珠穆沁旗| 奉节县| 邢台县| 微山县| 治多县| 新昌县| 开阳县| 龙南县| 永仁县| 宝清县| 婺源县| 佛坪县| 勃利县| 黄浦区| 长海县| 曲水县| 庄浪县| 稷山县| 上虞市| 寻乌县| 巴彦县| 阿巴嘎旗| 金溪县| 柞水县| 开平市| 巴马| 泰顺县| 嫩江县| 高阳县| 六安市| 垣曲县| 克拉玛依市| 青川县| 南宁市| 乌海市| 贺兰县| 婺源县| 台中市| 牡丹江市|