目录
OpenCV这么简单为啥不学——1、基础环境与imread函数
我们需要使用pip来安装cv2
pip install opencv-python
我们需要使用【__version__】来获取cv2的版本号。
import cv2
# 获取cv2的版本
print(cv2.__version__)
示例效果:
从文件中加载图片:
retval=cv.imread(filename[,flags])
该函数imread从指定的文件加载图像并返回它。如果无法读取图像(由于缺少文件,权限不正确,格式不受支持或格式无效),该函数将返回一个空矩阵(Mat :: data == NULL)。
filename:要加载的文件名 flags:可以接收的 cv :: ImreadModes值的
file图片文件支持以下文件格式:
flags的值:传入不同的参数,产生不同的效果
类型 | 类型说明(中英文) |
---|---|
IMREAD_UNCHANGED Python: cv.IMREAD_UNCHANGED | If set, return the loaded image as is (with alpha channel, otherwise it gets cropped). 如果设置,则按原样返回加载的图像(带有Alpha通道,否则将被裁剪) |
IMREAD_GRAYSCALE Python: cv.IMREAD_GRAYSCALE | If set, always convert image to the single channel grayscale image. 如果设置,请始终将图像转换为单通道灰度图像。 |
IMREAD_COLOR Python: cv.IMREAD_COLOR | If set, always convert image to the 3 channel BGR color image. 如果设置,请始终将图像转换为3通道BGR彩色图像。 |
IMREAD_ANYDEPTH Python: cv.IMREAD_ANYDEPTH | If set, return 16-bit/32-bit image when the input has the corresponding depth, otherwise convert it to 8-bit. 如果设置,则当输入具有相应的深度时返回16位/ 32位图像,否则将其转换为8位。 |
IMREAD_ANYCOLOR Python: cv.IMREAD_ANYCOLOR | If set, the image is read in any possible color format. 如果设置,将以任何可能的颜色格式读取图像。 |
IMREAD_LOAD_GDAL Python: cv.IMREAD_LOAD_GDAL | If set, use the gdal driver for loading the image. 如果已设置,请使用Gdal驱动程序加载图像 |
IMREAD_REDUCED_GRAYSCALE_2 Python: cv.IMREAD_REDUCED_GRAYSCALE_2 | If set, always convert image to the single channel grayscale image and the image size reduced 1/2. 如果设置,则始终将图像转换为单通道灰度图像,并且图像尺寸减小1/2。 |
IMREAD_REDUCED_COLOR_2 Python: cv.IMREAD_REDUCED_COLOR_2 | If set, always convert image to the 3 channel BGR color image and the image size reduced 1/2. 如果设置,请始终将图像转换为3通道BGR彩色图像,并且图像尺寸减小1/2。 |
IMREAD_REDUCED_GRAYSCALE_4 Python: cv.IMREAD_REDUCED_GRAYSCALE_4 | If set, always convert image to the single channel grayscale image and the image size reduced 1/4. 如果设置,则始终将图像转换为单通道灰度图像,并且图像尺寸减小1/4。 |
IMREAD_REDUCED_COLOR_4 Python: cv.IMREAD_REDUCED_COLOR_4 | If set, always convert image to the 3 channel BGR color image and the image size reduced 1/4. 如果设置,请始终将图像转换为3通道BGR彩色图像,并且图像尺寸减小1/4。 |
IMREAD_REDUCED_GRAYSCALE_8 Python: cv.IMREAD_REDUCED_GRAYSCALE_8 | If set, always convert image to the single channel grayscale image and the image size reduced 1/8. 如果设置,请始终将图像转换为单通道灰度图像,并且图像尺寸减小1/8。 |
IMREAD_REDUCED_COLOR_8 Python: cv.IMREAD_REDUCED_COLOR_8 | If set, always convert image to the 3 channel BGR color image and the image size reduced 1/8. 如果设置,请始终将图像转换为3通道BGR彩色图像,并且图像尺寸减小1/8。 |
IMREAD_IGNORE_ORIENTATION Python: cv.IMREAD_IGNORE_ORIENTATION | If set, do not rotate the image according to EXIF's orientation flag. 如果已设置,请不要根据EXIF的方向标志旋转图像。 |
import cv2
# 默认的是读取成RGB图像
img = cv2.imread('800_600.jpg')
cv2.imshow('image', img)
print(img)
cv2.waitKey(0) # 等待
cv2.destroyAllWindows() # 销毁所有的窗口
RGB也就是原图片
import cv2
# 灰度图片
img = cv2.imread('800_600.jpg', cv2.IMREAD_GRAYSCALE)
cv2.imshow('image', img)
print(img)
cv2.waitKey(0) # 等待
cv2.destroyAllWindows() # 销毁所有的窗口
灰度图片数值
计算机视觉市场巨大而且持续增长,且这方面没有标准API,如今的计算机视觉软件大概有以下三种:
1、研究代码(慢,不稳定,独立并与其他库不兼容) 2、耗费很高的商业化工具(比如Halcon, MATLAB+Simulink) 3、依赖硬件的一些特别的解决方案(比如视频监控,制造控制系统,医疗设备)这是如今的现状,而标准的API将简化计算机视觉程序和解决方案的开发,OpenCV致力于成为这样的标准API。
OpenCV致力于真实世界的实时应用,通过优化的C代码的编写对其执行速度带来了可观的提升,并且可以通过购买Intel的IPP高性能多媒体函数库(Integrated Performance Primitives)得到更快的处理速度。
故而我们选择学习OpenCV,本篇只是一切的开始。