OpenCV_Task01:Opencv基本了解、图像读取和绘图

Opencv基本了解、图像读取和绘图

  • 学习教程
    • 思考题
    • 练习题

学习教程

思考题

  1. Opencv库与Matlab、halcon的区别?
    Halcon:底层功能算法多,运算性能快,功能齐全,容易上手,开发项目周期短。非开源项目,商用收费,价格较贵。
    OpenCV:功能算法相对较多(比Halcon少),开源,可用于商用,开发周期较长(比Halcon长),有些算法要自己写。轻量且高效。
    Matlab:Matlab一般用于快速实现算法和测试,用于研究理论,OpenCV适合开发实际的图像处理或视觉的应用。
  2. 为什么是import cv2
    此处 ‘2’ 表示的并不是opencv的版本号,OpenCV是基于C/C++的,”cv”和”cv2”表示的是底层C API和C++API的区别,”cv2”表示使用的是C++API。
  3. 在显示完之后,用不用cv.destroyWindow()有什么区别?
    cv.destroyWindow()用来一个特定的窗口
  4. png图片格式和jpg图片格式有什么区别?
    PNG是无损压缩的图片,JPG是有损压缩;PNG支持透明,JPG不支持。

练习题

  1. 同时显示两张不同分辨率的图片,对比他们的大小;
#coding:utf-8
import numpy as np
import cv2 as cv
img1 = cv.imread('1.png', cv.IMREAD_COLOR)
cv.imshow('image1', img1)
img1_size=img1.shape
print("img1分辨率:",img1_size)

img2 = cv.imread('2.jpg', cv.IMREAD_COLOR)
cv.imshow('image2', img2)
img2_size=img2.shape
print("img1分辨率:",img2_size)

cv.waitKey(0)
cv.destroyAllWindows()
  1. 使用Opencv,测试一下你电脑摄像头的分辨率和帧率是多少;
    OpenCV_Task01:Opencv基本了解、图像读取和绘图_第1张图片
#coding:utf-8
import numpy as np
import cv2 as cv
video = cv.VideoCapture(r"WIN_20210207_16_19_01_Pro.mp4")#读取用电脑摄像头录制好的视频
while video.isOpened():
    ret, frame = video.read()
    if ret:
        cv.imshow("frame", frame)
    else:
        print("视频播放完成!")
        break
    # 退出播放
    key = cv.waitKey(25)
    if key == 27:  # 按键esc
        break
    # Our operations on the frame come here
    cv.imshow('frame', frame)
    fps = video.get(cv.CAP_PROP_FPS)  # 读取帧率
    size = (int(video.get(cv.CAP_PROP_FRAME_WIDTH)), int(video.get(cv.CAP_PROP_FRAME_HEIGHT)))  # 读取分辨率
    print("帧率:",fps)
    print("分辨率:",size)
# When everything done, release the capture
video.release()
cv.destroyAllWindows()
  1. 利用电脑摄像头从外界拍摄一幅自己的图像,添加圆(或其他图形)给自己打码,图片右下角添加自己的网名和时间。
# -*- coding: utf-8 -*-
import numpy as np
import cv2 as cv

img = cv.imread('WIN_20210207_16_27_37_Pro.jpg', cv.IMREAD_COLOR)
cv.circle(img,(900,380), 180, (10,10,225), -1)
font = cv.FONT_HERSHEY_SIMPLEX
cv.putText(img,'ViTO 02/07 16:43',(950,700), font, 1,(255,255,255),2,cv.LINE_AA)
cv.imshow('image', img)
cv.waitKey(0)
cv.destroyAllWindows()

你可能感兴趣的:(opencv)