主页 > 人工智能  > 

Python图像处理之OpenCV模块

Python图像处理之OpenCV模块

Python图像处理 1、OpenCV模块简介 2、OpenCV模块图像常用操作 3、PIL与OpenCV图像格式转换 4、图像识别应用案例 4.1、人脸识别 4.2、车牌识别 4.3、文本识别

1、OpenCV模块简介

OpenCV(Open Source Computer Vision Library)是一个基于BSD许可(开源)发行的跨平台计算机视觉库,主要用于图像和视频处理,可以运行在Linux、Windows、Android和MacOS操作系统上

OpenCV轻量级且高效:由一系列C函数和少量C++类构成,同时提供了Java、Python、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法

OpenCV使用C++语言编写,它的主要接口也是C++语言,但是依然保留了大量的C语言接口

在计算机视觉项目的开发中,OpenCV作为较大众的开源库,拥有了丰富的常用图像处理函数库,能够快速的实现一些图像处理和识别的任务

PIL/Pillow库使用、图像简介见文章:传送门

OpenCV官网: opencv.org/

官方文档参考: docs.opencv.org/4.x/

OpenCV库主要有4个模块:core、imgproc、highgui和videoio

core:包含OpenCV库的核心功能,如数据类型、矩阵操作、数组操作、图像处理等 imgproc:包含图像处理函数,如阈值处理、滤波、边缘检测、形态学操作、直方图处理等 highgui:提供了一些图形界面相关的函数,如图像显示、鼠标和键盘事件处理、视频播放等 videoio:提供了一些视频处理相关的函数,如视频的读取和保存、视频的帧率、分辨率等

OpenCV的应用场景:

物体识别与跟踪:如人脸识别、车牌识别、文本识别、自动驾驶等 图像分割与边缘检测:如医学图像肿瘤分割和边缘检测,以定量诊断和治疗 图像特征提取与描述:如图像拼接和全景重建、深度学习等

安装:

pip install opencv-python 2、OpenCV模块图像常用操作

1)读取图像(不支持HTTP读取)

''' cv2.imread(filename, flags) - filename:图像文件路径 - flags:指定图像模式 - cv2.IMREAD_COLOR:默认,彩色(忽略alpha通道)模式 - cv2.IMREAD_GRAYSCALE:灰度模式 - cv2.IMREAD_UNCHANGED:完整图像(包含alpha通道) ''' import cv2 import numpy as np img = cv2.imread(r'C:\Users\cc\Desktop\th.jpg') # 获取图像宽高 width, height, mode = img.shape print(width, height)

OpenCV读取HTTP图像见文章:传送门

2)显示图像

''' cv2.imshow(winname, mat) cv2.waitKey(0) cv2.destroyAllWindows() - winname:图像名称 - mat:读取的图像对象 - cv2.waitKey(0):等待键盘输入(单位:ms),0表示无限等待,没有该操作图像会一闪而逝 - cv2.destroyAllWindows():销毁所有窗口 ''' cv2.imshow('th', img) cv2.waitKey(0) cv2.destroyAllWindows()

3)保存图像

''' cv2.imwrite(filename, img, params) - filename:保存的图像文件名(带后缀) - img:要保存的图像对象 - params:压缩级别,默认3 ''' cv2.imwrite('save.jpg', img)

4)图像缩放

''' cv2.resize(src, dsize) - src:要缩放的图像 - dsize:目标大小 ''' resized_img = cv2.resize(img, (200, 200)) cv2.imshow('resized_img', resized_img) cv2.waitKey(0) cv2.destroyAllWindows()

5)图像裁剪

cropped_img = img[0: 40, 0: 40] cv2.imshow('cropped_img', cropped_img) cv2.waitKey(0) cv2.destroyAllWindows()

6)图像旋转

''' cv2.getRotationMatrix2D(center, angle, scale):图像旋转 center:旋转中心 angle:旋转角度(逆时针) scale:比例 cv2.warpAffine(src, M, dsize):图像平移 src:要旋转的图像 M:矩阵 dsize:旋转后图像大小 ''' M = cv2.getRotationMatrix2D((width / 2, height / 2), 45, 1) rotated_img = cv2.warpAffine(img, M, (width, height)) cv2.imshow('rotated_img', rotated_img) cv2.waitKey(0) cv2.destroyAllWindows()

7)图像颜色空间转换

''' cv2.
标签:

Python图像处理之OpenCV模块由讯客互联人工智能栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“Python图像处理之OpenCV模块