【Opencv3教程】Opencv-python入门篇(一)图像基础操作

(一)安装:

pip install opencv-python

(二)导入:

import cv2

(三)查看版本:

cv2.__version__

在这里插入图片描述

(四)读取图片:

cv2.imread(filename, flags=None)
  1. filename:图片文件的路径;
  2. flags:读取方式
    2.1 flags=1:读取彩色图,默认为BGR方法;
    2.2 flags=0:读取为灰度图;
    2.3 flags=-1:读取为BGRA,即包含透明度(如一些PNG图片);

返回图像矩阵,type为<class ‘numpy.ndarray’>;

例如:

import cv2

image1 = cv2.imread('./sample.jpg', 1)
image2 = cv2.imread('./sample.jpg', 0)
image3 = cv2.imread('./sample.jpg', -1)

(五)显示图片:

cv2.imshow(winname, mat)
  1. winname:创建窗口的名称;
  2. mat:图像,type为<class ‘numpy.ndarray’>;

注意这里只执行一次 imshow 函数,要使窗口持续显示,需要另外两个函数:

  1. cv2.waitKey(delay):这是一个和键盘绑定的函数,它的作用是等待一个键盘的输入,只有执行键盘输入,程序才会在延迟 delay 毫秒后继续进行,在此之前窗口一直存在;
  2. cv2.destroyALLWindows(): 销毁我们创建的所有窗口;

例如:

import cv2

image1 = cv2.imread('./sample.jpg', 1)
image2 = cv2.imread('./sample.jpg', 0)
image3 = cv2.imread('./sample.jpg', -1)

cv2.imshow('flags=1', image1)
cv2.imshow('flags=0', image2)
cv2.imshow('flags=-1', image3)

cv2.waitKey(0)

cv2.destroyAllWindows()

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

(六)色彩空间转换:

cv2.cvtColor(src, code, dst=None, dstCn=None)
  1. src:原图像;
  2. code:色彩空间转换类型,如 cv2.COLOR_BGR2GRAY;
  3. dst:目标图像矩阵,与原图像大小一致(也是返回值);
  4. dstCn:指定目标图像通道数(默认None,则会根据src、code自动计算);

例如:

import cv2

image = cv2.imread('./sample.jpg', 1)
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

cv2.imshow('sample', gray)
cv2.waitKey(0)
cv2.destroyAllWindows()

在这里插入图片描述

(七)保存图片:

cv2.imwrite(filename, img, params=None)
  1. filename:输出图像路径;
  2. img:需要保存的图片;
  3. params:对于JPEG,其表示的是图像的质量,用0 - 100的整数表示,默认95;对于png ,第三个参数表示的是压缩级别,默认为3;

例如:

import cv2

image = cv2.imread('./sample.jpg', 1)
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
cv2.imwrite()

在这里插入图片描述

(八)读取视频:

cv2.VideoCapture(filename)

其中 filename 可以是视频路径,也可以是整数(表示摄像头索引,前置摄像头默认为 0);

例如:

import cv2
from time import sleep

name = 'sample'

cap = cv2.VideoCapture('./test.avi')

while cap.isOpened():

    sleep(0.1)
    
    ret, frame = cap.read()
       
    cv2.waitKey(10)
    
    cv2.imshow(name, frame)
    
    if cv2.getWindowProperty(name, cv2.WND_PROP_AUTOSIZE) < 1:
        # 点x退出
        break

cap.release()
cv2.destroyAllWindows()

在这里插入图片描述

发布了100 篇原创文章 · 获赞 142 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_44936889/article/details/104345296