图像基础操作——读取、显示、保存

一幅被定义为二维函数f(x,y)坐标的图像,亮度为任何坐标(x,y)处的振幅。当f的x,y和振幅都是 有限且离散的量时,称为数字图像。

一、读取图像:imread(’filename’)

filename中不包含任何路径信息时,imread会从当前目录中寻找并读取图像文件。若当前目录中没有所需要的文件,则会尝试在父目录下搜寻。

src = cv.imread('D:/OpenCV/opencv-python/coins.png')

二·、显示图像:imshow(winname, mat)

@param winname Name of the window.

@param mat Image to be shown.

cv.imshow('input image', src)

三、保存图像:imwrite(filename, img, params=None)

filename为保存的路径,若不包含路径信息,则imwrite会将文件保存到当前的工作目录中。
img为需要保存的文件名。
params为一些可选参数,比如图片为哪种格式。

cv.imwrite('D:/OpenCV/opencv-python/coins1.png', src)

四、waitkey

  1. waitKey():在一个给定的时间内(单位ms)等待用户按键触发;如果用户没有按下:键,则继续等待,一直处在循环中。
  2. 下面程序中OpenCv等待用户触发事件,等待时间为50ms,如果在这个时间段内, 用户按下ESC(ASCII码为27),则跳出循环,否则,则继续循环。
c = cv.waitKey(50)
if c == 27:
   break
  1. 如果设置waitKey(0),则表示程序会无限制的等待用户的按键事件

五、代码展示

 import cv2 as cv
import numpy as np

def video_demo():
    capture = cv.VideoCapture('D:/OpenCV/20220305_11.mp4')
    while True:
        ret, frame = capture.read()
"""
        src:输入数组。
        DST:输出数组的大小和类型与src相同。
        flipCode:指定如何翻转数组的标志;0表示绕x轴翻转,而正值(例如,1)表示绕y轴翻转。负值(例如,-1)表示在两个轴上翻转。
"""
        frame = cv.flip(frame, 1)
        cv.imshow('video', frame)
        c = cv.waitKey(1)
        if c == 27:
            break

def get_image_info(image):
"""
    type(object_or_name, bases, dict)
    type(object) -> the object's type
    type(name, bases, dict) -> a new type
"""
    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('D:/OpenCV/opencv-python/coins.png')
"""
namedWindow(winname[, flags]) -> None
winname:窗口的名字
flags:窗口类型,CV_WINDOW_AUTOSIZE表明窗口大小自动适应图片大小,并且不可手动更改。 CV_WINDOW_NORMAL表明窗口可以被随意拖动改变大小。
"""
cv.namedWindow('input image', cv.WINDOW_AUTOSIZE)
"""
@param winname Name of the window.

@param mat Image to be shown.

"""
cv.imshow('input image', src)
get_image_info(src)

gray = cv.cvtColor(src, cv.COLOR_BGR2GRAY)
cv.imwrite('D:/OpenCV/opencv-python/coins1.png', src)

video_demo()
cv.waitKey(0)

cv.destroyAllWindows()
print('Hi,Python!')

Original: https://blog.csdn.net/weixin_45769285/article/details/123767875
Author: Ann程序
Title: 图像基础操作——读取、显示、保存

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/703000/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球