OpenCV-Python学习 <一> 初探
0. OpenCV-Python的安装:pip install opencv-python有时会安装失败。可以下载匹配的whl文件来安装。而要使用whl安装,需要先安装:wheelpip install wheel先确认需要的版本:#pythonPython 3.8.5 (default, Sep 3 2020, 21:29:08)所以需要下载:opencv_python-4.5.3.56-cp3
0. OpenCV-Python的安装:
pip install opencv-python
有时会安装失败。可以下载匹配的whl文件来安装。
而要使用whl安装,需要先安装:wheel
pip install wheel
先确认需要的版本:
#python
Python 3.8.5 (default, Sep 3 2020, 21:29:08)
所以需要下载:
opencv_python-4.5.3.56-cp38-cp38-win_amd64.whl (34.9 MB)
pip install D:\Tools\opencv_python-4.5.3.56-cp38-cp38-win_amd64.whl
安装测试:
import cv2
没出错,则说明安装成功。
1. 图像的读取:
cv.imread(filename[, flags]) ->retval
从文件中(filename)读取图像。如果未能读取成功(由于文件丢失、权限不正确、格式不受支持或无效). 则返回None.
返回值--retval: 其值是读取到的图像。如果未能读取到图像,则返回None.
flags: 读取标志,用来控制读取文件的类型。
例1:
import cv2
import sys
window_name = "Lesson1"
img = cv2.imread("../images/background.jpg", cv2.IMREAD_REDUCED_GRAYSCALE_2)
#print(img.shape)
if(img is None):
print("Read Image Error")
sys.exit(0)
print(type(None))
cv2.imshow(window_name, img)
cv2.waitKey(0)
cv2.destroyWindow(window_name)
注意:
当cv2.imread()未能读到数据时,可以用img is None来判断。
2. 图像的存储:
cv.imwrite(filename, img[, params]) ->retval
存储图像到指定文件中。
retval 返回值。保存成功,返回True. 保存失败,返回False.
filename:保存的文件名。包含扩展文件名(图像格式根据扩展文件名选择)
img: 图像数据。
params:保存类型参数。
IMWRITE_JPEG_QUALITY
Python:cv.IMWRITE_JPEG_QUALITY
| 对于 JPEG,它可以是 0 到 100 的质量(越高越好)。默认值为 95。 |
IMWRITE_JPEG_PROGRESSIVE
Python:cv.IMWRITE_JPEG_PROGRESSIVE
| 启用 JPEG 功能,0 或 1,默认为 False。 |
IMWRITE_JPEG_OPTIMIZE
Python:cv.IMWRITE_JPEG_OPTIMIZE
| 启用 JPEG 功能,0 或 1,默认为 False。 |
IMWRITE_JPEG_RST_INTERVAL
Python:cv.IMWRITE_JPEG_RST_INTERVAL
| JPEG 重启间隔,0 - 65535,默认为 0 - 不重启。 |
IMWRITE_JPEG_LUMA_QUALITY
Python:cv.IMWRITE_JPEG_LUMA_QUALITY
| 单独的亮度质量级别,0 - 100,默认为 0 - 不使用。 |
IMWRITE_JPEG_CHROMA_QUALITY
Python:cv.IMWRITE_JPEG_CHROMA_QUALITY
| 单独的色度质量级别,0 - 100,默认为 0 - 不使用。 |
IMWRITE_PNG_COMPRESSION
Python:cv.IMWRITE_PNG_COMPRESSION
| 对于 PNG,它可以是从 0 到 9 的压缩级别。更高的值意味着更小的尺寸和更长的压缩时间。如果指定,则策略更改为 IMWRITE_PNG_STRATEGY_DEFAULT (Z_DEFAULT_STRATEGY)。默认值为 1(最佳速度设置)。 |
IMWRITE_PNG_STRATEGY
Python:cv.IMWRITE_PNG_STRATEGY
| 其中一个品种:: ImwritePNGFlags,默认为IMWRITE_PNG_STRATEGY_RLE。 |
IMWRITE_PNG_BILEVEL
Python:cv.IMWRITE_PNG_BILEVEL
| 二进制级别 PNG,0 或 1,默认为 0。 |
IMWRITE_PXM_BINARY
Python:cv.IMWRITE_PXM_BINARY
| 对于 PPM、PGM 或 PBM,它可以是二进制格式标志,0 或 1。默认值为 1。 |
IMWRITE_EXR_TYPE
Python:cv.IMWRITE_EXR_TYPE
| |
IMWRITE_EXR_COMPRESSION
Python:cv.IMWRITE_EXR_COMPRESSION
| 覆盖 EXR 存储类型(默认为 FLOAT (FP32)) |
IMWRITE_WEBP_QUALITY
Python:cv.IMWRITE_WEBP_QUALITY
| 覆盖 EXR 压缩类型(ZIP_COMPRESSION = 3 是默认值) 对于 WEBP,它可以是 1 到 100 的质量(越高越好)。默认情况下(没有任何参数)和质量高于 100 使用无损压缩。 |
IMWRITE_PAM_TUPLETYPE
Python:cv.IMWRITE_PAM_TUPLETYPE
| 对于 PAM,将 TUPLETYPE 字段设置为为格式定义的相应字符串值。 |
IMWRITE_TIFF_RESUNIT
Python:cv.IMWRITE_TIFF_RESUNIT
| 对于 TIFF,用于指定要设置的 DPI 分辨率单位;有关有效值,请参阅 libtiff 文档。 |
IMWRITE_TIFF_XDPI
Python:cv.IMWRITE_TIFF_XDPI
| 对于 TIFF,用于指定 X 方向 DPI。 |
IMWRITE_TIFF_YDPI
Python:cv.IMWRITE_TIFF_YDPI
| 对于 TIFF,用于指定 Y 方向 DPI。 |
IMWRITE_TIFF_COMPRESSION
Python:cv.IMWRITE_TIFF_COMPRESSION
| 对于 TIFF,用于指定图像压缩方案。有关与压缩格式对应的整数常量,请参阅 libtiff。注意,对于深度为 CV_32F 的图像,仅使用 libtiff 的 SGILOG 压缩方案。对于其他支持的深度,可以通过该标志指定压缩方案;LZW 压缩是默认的。 |
IMWRITE_JPEG2000_COMPRESSION_X1000
Python:cv.IMWRITE_JPEG2000_COMPRESSION_X1000
| 对于 JPEG2000,用于指定目标压缩率(乘以 1000)。该值可以从 0 到 1000。默认值为 1000。 |
获取图像的属性信息:
image.shape : image的shape.
若为灰度图。则为(行数,列数)
若为BGR,则为(行数,列数,通道数)
image.size: image的像素个数。
image.dtype: 图像的数据类型。
附录1:
Python 中的None
常量 None和 False 不同,它不表示 0,也不表示空字符串,而表示没有值,也就是空值.
None 有自己的数据类型:
print(type(None))
<class 'NoneType'>
None 常用于 assert、判断以及函数无返回值的情况.
附录2:
cv2模块。
关于import cv2
大多数OpenCV函数都在cv2模块内。 与cv2模块对应的cv模块代表传统版本的模块。此处cv2并不代表OpenCV2版本,而是指该模块引入了一个改善的API接口。
cv2模块内部采用了面向对象的编程方式。而cv模块内更多的采用了面向过程的编程方式。
更多推荐
所有评论(0)