栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

面向python,Opencv学习笔记(一)---3

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

面向python,Opencv学习笔记(一)---3

学习笔记
  • 前言
    • 1、函数
    • 1.1代码示例Save_image.py
    • 1.2 结果展示:
  • 2.保存视频:
    • 2.1函数
    • 2.2代码示例Save_video.py
    • 2.3 结果展示:
  • 3 保存读取XML和YMAL文件
    • 3.1 函数
    • 3.2 代码示例(XML为例)
    • 3.3 结果展示


前言

要求opencv版本4.1.2.30(4.x >=版本),我的版本4.5.3
opencv数据的保存

1、函数

cv.imwrite(filename,img,paras)
filename:保存图像的路径和文件名,包含图像格式
img:将要保存的Array类型的数组
params:图片格式设置的属性(一般不填写。。)

1.1代码示例Save_image.py

代码如下(示例):

from typing import no_type_check
import cv2 as cv
import sys
import numpy as np
import matplotlib.pyplot as plt

if __name__ =='__main__':
    #读取图片并判断是否成功
    img = cv.imread('./chapter_2/flower.jpg')
    if img is None:
        print('Failed to read flower.jpg')
        sys.exit()
    else:
        #添加alpa通道
        zeros = np.ones(img.shape[:2],dtype=img.dtype)*100
        result = cv.merge([img,zeros])
        print(f'原图的通道数{img.shape[2]}')
        print(f'处理后的通道数{result.shape[2]}')

        plt.imshow(result)
        plt.show()

        cv.imwrite('./chapter_2/result_alpha.png',result)
1.2 结果展示:


2.保存视频: 2.1函数

cv.VideoWriter(filename,fource,fps,frameSize,isColor)
filename:保存视频的路径和文件名
fource:压缩帧的4字符编/解码器选项
fps:保存视频的帧率
frameSize:视频帧的大小
isColor:表示是否已彩色保存,默认彩色

2.2代码示例Save_video.py
import cv2 as cv

if __name__ =='__main__':
    #设置编码/解码方式
    fourcc = cv.VideoWriter_fourcc(*'DIVX')

    #采用摄像头获取图像
    video = cv.VideoCapture(0)
    result = cv.VideoWriter('./chapter_2/Save_video.avi',fourcc,20.0,(640,480))
    #判断是否成功创建视频流
    while video.isOpened():
        ret,frame = video.read()
        if ret is True:
            frame = cv.flip(frame,1)
            result.write(frame)
            cv.imshow('Video',frame)
            cv.waitKey(25)

            #按下Q键退出
            if cv.waitKey(1) & 0xFF ==ord('q'):
                break
        else:
            break
    video.release()
    result.release()
    cv.destroyAllWindows()

2.3 结果展示:

3 保存读取XML和YMAL文件 3.1 函数

cv.FileStorage(filename,flags,encoding)
filename:打开的文件名称
flags:对文件执行的操作类型标志
encoding:编码格式(通常默认)

可以声明cv.FileStorage()不加参数后续通过open()函数添加:
如cv.FileStorage().open(filename,flags,encoding)
cv.FileStorage.write(name,val)写入
name:变量名称
val:值

3.2 代码示例(XML为例)
import cv2 as cv
import numpy as np

if __name__=='__main__':
    file = cv.FileStorage('./chapter_2/data/Myfile.xml',cv.FileStorage_WRITE)

    file.write('name','张三')
    file.write('age',16)
    file.write('date','2019-01-01')
    scores= np.array([[98,87],[66,58],[54,36]])
    file.write('scores',scores)

    file.release()
    #读取
    filel = cv.FileStorage('./chapter_2/data/Myfile.xml',cv.FileStorage_READ)
    #判断是否成功打开
    if filel.isOpened():
        name1 = filel.getNode('name').string()
        age1 = filel.getNode('age').real()
        date1 = filel.getNode('date').string()
        scores1 = filel.getNode('scores').mat()

        print(f"姓名{name1} 年龄{age1} 记入时间{date1} 成绩单{scores1}")
    else:
        print('Failed')
    
    filel.release()

3.3 结果展示

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/329444.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号