02.opencv中图像加载与保存

1.图像是慕斯?

计算机“看到”的图像其实是一个一个像素点构成的,每个像素点都有对应的数值。 所以图像时结构化存储的数据信息。

图像属性:

通道数目:一般的RGB图片,通道数目(channels) 是3个(红、绿、蓝);而monochrome图片,通道数目(channels)是1。
高与宽:高度是图像竖向的长度, 宽度是图像横向的长度
像素数据:就是图像每个像素点的值
图像类型:图像在计算机显示的类型有二值图像、灰度图像、彩色图像(伪彩色图像和真彩色图像)

2.获取图像的详细信息

#coding:utf-8
#file: tutorial_1.py
#@author: young
#@contact: [email protected]
#@time: 2019/12/13 23:17
#coding:utf-8
#file: test.py.py
#@author: young
#@contact: [email protected]
#@time: 2019/12/13 16:37
import  cv2 as  cv

def get_image_info(image):
    print(type(image))
    print(image.shape)
    print(image.size)
    print(image.dtype)
    pixel_data = np.array(image)
    #获取像素数据
    print(pixel_data)
    
print("___________hello python__________")
src = cv.imread("lena.jpg")
get_image_info(src)
cv.imshow("input mages",src)
cv.waitKey(0)
cv.destroyAllWindows()

在这里插入图片描述
类型是numpy的n维数组
图片的高和宽都是512,深度是3
总像素数据大小是786432
每个通道的像素点占的位数是uint8(无符号int8位)
像素的详细数据

3.获取自个家摄像头的画面

def video_demo():
    capture = cv.VideoCapture(0)
    #VideoCapture函数:打开摄像头设备,参数为0表示使用第一个设备
    #如果有多个设备可以修改参数,选择使用的设备 
    while(True):
        ret,frame = capture.read()
        # 打开连接电脑的相机去读取,ret返回值,frame返回视频每一帧
        frame = cv.flip(frame, 1)
        # 之前摄像头正对着我,存在左右颠倒,进行左右调换
        # 翻转    
        #0:沿X轴翻转(垂直翻转)   
        #大于0:沿Y轴翻转(水平翻转)   
        #小于0:先沿X轴翻转,再沿Y轴翻转,等价于旋转180°
        cv.imshow("video",frame)
        #使用一个窗口来显示摄像头的内容
        c = cv.waitKey(50)
        #waitKey(50)将显示一个框架。50毫秒后,显示将自动关闭。(如果你把它放到一个循环中去读。视频,它将显示视频帧逐帧。
        if c == 27:
        #27对应ASCII中的ESC,如果键盘输入ESC键,则会退出整个循环	
            break

在这里插入图片描述可以按ESC键之后,按0键结束程序,或者直接点击pycharm中的红色停止按钮停止程序。

4.保存图片

src = cv.imread("lena.jpg")
get_image_info(src)
cv.imshow("input mages",src)
gray = cv.cvtColor(src,cv.COLOR_BGR2GRAY)
#转化为灰色
cv.imwrite("D:/lena.jpg",gray)
#保存图片
cv.waitKey(0)
cv.destroyAllWindows()

在这里插入图片描述

发布了60 篇原创文章 · 获赞 8 · 访问量 3328

猜你喜欢

转载自blog.csdn.net/qq_43476433/article/details/103534693
今日推荐