OpenCV-python实现图像加载、图像保存、摄像头调用

OpenCV-python实现图像加载、图像保存、摄像头调用

说明:

1、涉及两个模块相关知识

1.1、通过调用cv2模块中的函数实现图像读取,写入,灰度处理
涉及命令:

相关命令用到的功能
cv.imread读取图像
cv.imshow显示图像
cv.imwrite图像写入
cv.cvtColor图像色彩处理
cv.COLOR_BGR2GRAY灰度处理
cv.flip摄像头捕捉图像的镜像变换
cv.VideoCapture视频捕捉
cv.namedWindow创建图形窗口
cv.WINDOW_AUTOSIZE窗口大小
cv.waitKey等待键入,或者刷新

1.2、通过调用numpy中的函数将图像矩阵里的数据保存

pixel_data = np.array(image)
#使用numpy库中的array函数来将image中所有数据存起来
2、定义两个函数:

2.1、video_demo函数实现摄像头捕捉图像

def video_demo():#调用摄像头
    capture = cv.VideoCapture(0)
    while(True):#表示一直读取的意思
        ret, frame = capture.read()#将捕捉到的每一帧图像存到frame中
        frame = cv.flip(frame, 1)#flip是镜像变换,1和-1
        cv.imshow("video", frame)#读取摄像头的每一帧
        c = cv.waitKey(50)#每隔50ms刷新一次图像
        if c == 27:#27是ASCII码ESC十进制的表示,用来退出
            break

2.2、get_image_info函数实现图像信息的获取

def get_image_info(image):#用来得到图片的具体信息
    print(type(image))#得到图像的类型,<class 'numpy.ndarray'>,numpy包中N维的数组结构
    print(image.shape)#图像宽高和通道数
    print(image.size)#图像大小size=shape中宽高和通道数相乘
    print(image.dtype)#获得图像字节大小uint8表示无符号int8位数
    pixel_data = np.array(image)#使用numpy库中的array函数来将image中所有数据存起来
    print(pixel_data)#打印图像的数组数据

3、完整代码

附:
需要在同一个目录下放入图片:1.jpg
可以更改输出路径与文件名

import cv2 as cv
import numpy as np


def video_demo():#调用摄像头
    capture = cv.VideoCapture(0)
    while(True):#表示一直读取的意思
        ret, frame = capture.read()#将捕捉到的每一帧图像存到frame中
        frame = cv.flip(frame, 1)#flip是镜像变换,1和-1
        cv.imshow("video", frame)#读取摄像头的每一帧
        c = cv.waitKey(50)#每隔50ms刷新一次图像
        if c == 27:#27是ASCII码ESC十进制的表示,用来退出
            break

def get_image_info(image):#用来得到图片的具体信息
    print(type(image))#得到图像的类型,<class 'numpy.ndarray'>,numpy包中N维的数组结构
    print(image.shape)#图像宽高和通道数
    print(image.size)#图像大小size=shape中宽高和通道数相乘
    print(image.dtype)#获得图像字节大小uint8表示无符号int8位数
    pixel_data = np.array(image)#使用numpy库中的array函数来将image中所有数据存起来
    print(pixel_data)#打印图像的数组数据


print("--------Hello python---------")
scr = cv.imread("1.jpg")#使用cv中的imread来读取图片并保存数据到scr中
cv.namedWindow("input image", cv.WINDOW_AUTOSIZE) #创建一个叫input image的GUI框架显示图像
cv.imshow("input image", scr)#使用cv中的imshow来显示图片,使创建的窗口与图像相吻合

video_demo()#调用摄像头

get_image_info(scr)#调用函数,将scr中的内容传递进去,获得图像信息

gray = cv.cvtColor(scr, cv.COLOR_BGR2GRAY)#将图像进行灰度处理
cv.imwrite("E:\Python Environment\Pycharm_location_projects\Myprojects\gray-1.png", gray)#图像输出保存

cv.waitKey(0)#等待操作

cv.destroyAllWindows()  # 释放所有窗口内存
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值