基于Python的OpenCV函数----imread(filename[,falgs=None])
函数名称
imread(filename[,falgs=None]) -> retval
摘要
从文件中加载图片
描述
函数imread从指定的文件加载一个图像并返回它,如果无法读取图片(因为缺少文件、不适当的权限、不支持或者无效的格式),函数返回一个空矩阵(Mat::data==null).
目前,支持以下格式的文件:
. - Windows bitmaps - *.bmp, *.dib (always supported)
. - JPEG files - *.jpeg, *.jpg, *.jpe (see the Note section)
. - JPEG 2000 files - *.jp2 (see the Note section)
. - Portable Network Graphics - *.png (see the Note section)
. - WebP - *.webp (see the Note section)
. - Portable image format - *.pbm, *.pgm, *.ppm *.pxm, *.pnm (always supported)
. - PFM files - *.pfm (see the Note section)
. - Sun rasters - *.sr, *.ras (always supported)
. - TIFF files - *.tiff, *.tif (see the Note section)
. - OpenEXR Image files - *.exr (see the Note section)
. - Radiance HDR - *.hdr, *.pic (always supported)
. - Raster and Vector geospatial data supported by GDAL (see the Note section)
–该函数根据内容而不是文件扩展名来确定图像的类型
–对于彩色图像,解码后的图像将按照BGR的顺序存储通道
–当时用IMREAD_GRAYSCALE时,将时用编解码器的内部灰度转换,如果可用的话,结果可能会因cvtColor()的输出而不同
–在Microsoft Windows* OS和MacOSX*上,默认情况下使用随OpenCV映像一起提供的编解码器(libjpeg、libpng、libtiff和libjasper)。因此,OpenCV总是可以读取jpeg、png和tiff文件。在MacOSX上,还可以选择使用本机MacOSX图像阅读器。但是要注意,由于MacOSX中嵌入了颜色管理,目前这些本地图像加载器会给图像以不同的像素值。
–在Linux*、BSD口味和其他类unix的开源操作系统上,OpenCV寻找随操作系统映像提供的编解码器。安装相关的包(不要忘记开发文件,例如Debian*和Ubuntu*中的“libjpeg-dev”)以获得编解码器支持,或者在CMake中打开OPENCV_BUILD_3RDPARTY_LIBS标志。
–在你设置* WITH_GDAL *标志真正CMake和@ref IMREAD_LOAD_GDAL加载图片,然后(GDAL) (http://www.gdal.org)驱动程序将使用为了解码图像,支持以下格式:(光栅)(http://www.gdal.org/formats_list.html),(向量)(http://www.gdal.org/ogr_formats.html)。
–如果在图像文件中嵌入了EXIF信息,则会考虑到EXIF方向,因此图像将相应地旋转,除非通过了@ref IMREAD_IGNORE_ORIENTATION标志。
–使用IMREAD_UNCHANGED标志来保持来自PFM图像的浮点值。
–默认情况下,像素数必须小于2^30。可以使用系统变量OPENCV_IO_MAX_IMAGE_PIXELS设置限制
参数说明
filename:要加载的文件的名称。
flags:可以取cv:: imreadmode值的标志
参数名称 | 作用 |
---|---|
IMREAD_ANYCOLOR | 按原图像颜色格式读取 |
IMREAD_ANYDEPTH | 按原图像深度信息读取,非16位或32位的则转化为8位 |
IMREAD_COLOR | 转化为三通道图像 |
IMREAD_GRAYSCALE | 转化为灰度图(8位),dtype=CV_8UC1 |
IMREAD_UNCHAGED | 原样读取,不改变图像信息 |
使用方法
import cv2
src_image1 = cv2.imread("../images/num/src01.jpg")
cv2.imshow("src_image1", src_image1)
cv2.waitKey(0)