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

这篇博客介绍了OpenCV与Matlab、Halcon的区别,并通过实例展示了如何使用OpenCV进行图像读取、显示和绘图操作。同时,还提供了代码示例来比较不同图片格式的特性,测试电脑摄像头的分辨率和帧率,以及如何使用OpenCV进行图像编辑,如添加圆和文字进行打码。
摘要由CSDN通过智能技术生成

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,测试一下你电脑摄像头的分辨率和帧率是多少;
    在这里插入图片描述
#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()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值