OpenCV imread函数读取图像__实例详解
OpenCV imread函数读取图像__实例详解
本文目录:
零、时光宝盒
一、imread函数定义
二、imread函数支持的文件格式
三、imread函数flags参数详解
(3.1)、Flags=-1时,样返回加载的图像(使用alpha通道,否则将被裁剪)
(3.2)、Flags=0时,将图像转换为单通道灰度图像(编解码器内部转换)
(3.3)、Flags=1时,将图像转换为3通道BGR彩色图像。
(3.4)、Flags=2时,输入相应的深度时,返回16位/32位图像,否则将其转换为8位。
(3.5)、Flags=4时,以任何可能的颜色格式读取图像
(3.6)、Flags=8时,使用gdal驱动程序加载图像
(3.7)、Flags=16时,将图像转换为单通道灰度图像,图像大小减小1/2。
(3.8)、Flags=17时,将图像转换为3通道BGR彩色图像,并将图像大小缩小1/2。
(3.9)、Flags=32时,将图像转换为单通道灰度图像,图像大小减小1/4。
(3.10)、Flags=33时,将图像转换为3通道BGR彩色图像,并将图像大小缩小1/4。
(3.11)、Flags=64时,将图像转换为单通道灰度图像,图像大小减小1/8。
(3.12)、Flags=65时,将图像转换为3通道BGR彩色图像,图像大小减小1/8。
(3.11)、Flags=128时,如果已设置,则不要根据EXIF的方向标志旋转图像。
(3.12)、Flags=256时,将图像转换为3通道RGB彩色图像。
零、时光宝盒

 逆境清醒:https://blog.csdn.net/weixin_69553582   
两千年前,一个觉悟了的人拿着一碗水,告诉世人,那里面有八万四千只虫。那个时代,没有显微镜,世人还不知道细菌是什么东西。信他的人,把他看作神;不信他的人,否定信者,说他们迷信。当年,那位觉悟了的人,叫“释迦牟尼”。————摘选自李淡的书
很多时候,我们都存在思维局限,理解不了经验之外的某些现象,但,世界真的早已经变化,只是我们一直处于温水煮青蛙的状态,能察觉的人并不多,或者说能察觉的人被周围的人打压,导致。。。
所以,我们保存虚心的学习态度很重要,互勉。
     逆境清醒
 2025.1.20
此文地址:https://blog.csdn.net/weixin_69553582/article/details/145268598

OpenCV读取图像,是使用cv.imread函数实现读取图像功能。
一、imread函数定义
cv2.imread(filename,flags)函数,
作用:
使用OpenCV读取图像。返回值是一个nparray 多维数组。OpenCV 对图像的任何操作,本质上就是对 Numpy 多维数组的运算。
- filename:第一个参数filename是图像地址,图像应该存储在工作目录中或给出图像的完整路径。即使图像路径错误,也不会引发任何错误,但是在打印图像时系统会给出None。
 - flags:第二个参数flags,是一个标志,指定了读取图像的方式。
 - 如果无法读取图像(文件丢失,权限不正确,格式不支持或无效),该函数返回一个空矩阵。
 - 必须使用中文时,可以使用 cv2.imdecode() 处理
 - 读取图像时默认忽略透明通道,但可以使用 CV_LOAD_IMAGE_UNCHANGED 参数读取透明通道。
 - 对于彩色图像,可以使用 flags=0 按照读取为灰度图像。
 
- 该函数的返回值是图像数字矩阵,
 - 维度如下:
 
(M,N):用于灰度图。
(M,N,3):用于RGB彩色图。
OpenCV 中彩色图像使用 BGR 格式,而 PIL、PyQt、matplotlib 等库使用的是 RGB 格式。
有关计算机图像颜色的介绍,
请查看这篇文章:计算机视觉基础__图像特征https://blog.csdn.net/weixin_69553582/article/details/130068666https://blog.csdn.net/weixin_69553582/article/details/130068666https://blog.csdn.net/weixin_69553582/article/details/130068666https://blog.csdn.net/weixin_69553582/article/details/130068666https://blog.csdn.net/weixin_69553582/article/details/130068666https://blog.csdn.net/weixin_69553582/article/details/130068666https://blog.csdn.net/weixin_69553582/article/details/130068666
https://blog.csdn.net/weixin_69553582/article/details/130068666
二、imread函数支持的文件格式
OpenCV从文件加载图像,支持的文件格式
imread该函数从指定文件加载图像并返回 OpenCV 矩阵。如果无法读取图像(由于缺少文件、权限不正确或格式不受支持/无效),该函数将返回一个空矩阵。
目前,支持以下文件格式:
- Windows 位图 - *.bmp、*.dib(始终支持)
 - GIF 文件 - *.gif(始终支持)
 - JPEG 文件 - *.jpeg、*.jpg、*.jpe
 - JPEG 2000 文件 - *.jp2
 - 便携式网络图形 - *.png
 - WebP - *.webp
 - AVIF - *.avif
 - 可移植图像格式 - *.pbm、*.pgm、*.ppm、*.pxm、*.pnm(始终支持)
 - PFM 文件 - *.pfm
 - Sun 栅格 - *.sr、*.ras(始终支持)
 - TIFF 文件 - *.tiff、*.tif
 - OpenEXR 图像文件 - *.exr
 - Radiance HDR - *.hdr、*.pic(始终支持)
 - GDAL 支持的栅格和矢量地理空间数据
 
注意
- 该函数通过图像的内容(而不是文件扩展名)来确定图像的类型。
 - 对于彩色图像,解码后的图像将具有按 B G R 顺序存储的通道。
 - 使用 IMREAD_GRAYSCALE 时,将使用编解码器的内部灰度转换(如果可用)。结果可能与 cvtColor() 的输出不同。
 - 在 Microsoft Windows* 和 Mac OS* 上,默认使用 OpenCV 附带的编解码器(libjpeg、libpng、libtiff 和 libjasper)。因此,OpenCV 始终可以读取 JPEG、PNG 和 TIFF。在 Mac OS 上,还可以选择使用本机 Mac OS 图像阅读器。但是,请注意,由于 Mac OS 中嵌入了色彩管理,因此目前这些本机图像加载器会提供具有不同像素值的图像。
 - 在 Linux*、BSD 风格和其他类似 Unix 的开源操作系统上,OpenCV 会查找操作系统提供的编解码器。确保安装相关软件包(包括开发文件,例如 Debian* 和 Ubuntu* 中的“libjpeg-dev”)以获得编解码器支持,或在 CMake 中打开 OPENCV_BUILD_3RDPARTY_LIBS 标志。
 - 如果在 CMake 中将 WITH_GDAL 标志设置为 true,并且 IMREAD_LOAD_GDAL 用于加载图像,则 GDAL 驱动程序将用于解码图像,支持 Raster 和 Vector 格式。
 - 如果图像文件中嵌入了 EXIF 信息,则将考虑 EXIF 方向,因此图像将相应地旋转,除非传递标志 IMREAD_IGNORE_ORIENTATION 或 IMREAD_UNCHANGED。
 - 使用 IMREAD_UNCHANGED 标志保留 PFM 图像中的浮点值。
 - 默认情况下,像素数必须小于 2^30。可以通过设置 environment variable 来更改此限制。请参阅 OpenCV 环境变量参考。OPENCV_IO_MAX_IMAGE_PIXELS
 
三、imread函数flags参数详解
imread函数第二个参数是一个标志,它指定了读取图像的方式。
- cv.IMREAD_COLOR: 加载彩色图像。任何图像的透明度都会被忽视。它是默认标志。
 - cv.IMREAD_GRAYSCALE:以灰度模式加载图像
 - cv.IMREAD_UNCHANGED:加载图像,包括alpha通道
 
注意 除了这三个标志,你可以分别简单地传递整数1、0或-1。
|   参数flags:读取图像的方式  | |
|   数值  |   含义  | 
|   -1  |   保持原格式不变 (原来是灰度图像就是灰度图像,原来是彩色图像,就是彩色图像)  | 
|   0  |   将图像调整为单通道灰度图像  | 
|   1  |   将图像调整为3通道BGR图像  | 
|   2  |   当载入图像为16位或32位时,返回其对应的深度图像;否则,将其转换为8位图像  | 
|   4  |   以任何可能的颜色格式读取图像  | 
|   8  |   使用gdal驱动程序加载图像  | 
|   color_change 参数:  | ||
|   cv2.IMREAD_COLOR  |   默认1  |   加载彩色图。任何图像的透明度都会被忽视,  | 
|   cv2.IMREAD_GRAYSCALE  |   默认0  |   以灰度模式(黑白图像)加载图像  | 
|   cv2.IMREAD_UNCHANGED  |   默认-1  |   加载图像,包括alpha通道,可以用-1代替。  | 
|   cv2.IMREAD_ANYDEPTH  |   默认2  |   在输入具有相应深度时返回16位/ 32位图像,否则将其转换为8位  | 
|   cv2.IMREAD_ANYCOLOR  |   默认4  |   以任何可能的颜色格式读取图像  | 
  
enum     cv::ImreadModes {cv::IMREAD_UNCHANGED = -1 ,cv::IMREAD_GRAYSCALE = 0 ,cv::IMREAD_COLOR_BGR = 1 ,cv::IMREAD_COLOR = 1 ,cv::IMREAD_ANYDEPTH = 2 ,cv::IMREAD_ANYCOLOR = 4 ,cv::IMREAD_LOAD_GDAL = 8 ,cv::IMREAD_REDUCED_GRAYSCALE_2 = 16 ,cv::IMREAD_REDUCED_COLOR_2 = 17 ,cv::IMREAD_REDUCED_GRAYSCALE_4 = 32 ,cv::IMREAD_REDUCED_COLOR_4 = 33 ,cv::IMREAD_REDUCED_GRAYSCALE_8 = 64 ,cv::IMREAD_REDUCED_COLOR_8 = 65 ,cv::IMREAD_IGNORE_ORIENTATION = 128 ,cv::IMREAD_COLOR_RGB = 256
} 
第二个参数flags是一个可选参数,默认值为“ IMREAD_COLOR”其枚举值(可设置值)的具体意义如下:
| 标志 | flags | |
|   IMREAD_UNCHANGED Python:cv.IMREAD_UNCHANGED  | 如果设置,则按原样返回加载的图像(使用 Alpha 通道,否则会被裁剪)。忽略 EXIF 方向。 | -1 | 
|   IMREAD_GRAYSCALE Python:cv.IMREAD_GRAYSCALE  | 如果设置,则始终将图像转换为单通道灰度图像(编解码器内部转换)。 | 0 | 
|   IMREAD_COLOR_BGR Python:cv.IMREAD_COLOR_BGR  | 如果设置,则始终将图像转换为 3 通道 BGR 彩色图像。 | 1 | 
|   IMREAD_COLOR Python:cv.IMREAD_COLOR  | 与 IMREAD_COLOR_BGR 相同。 | 1 | 
|   IMREAD_ANYDEPTH Python:cv.IMREAD_ANYDEPTH  | 如果设置,当输入具有相应的深度时,返回 16 位/32 位图像,否则将其转换为 8 位。 | 2 | 
|   IMREAD_ANYCOLOR Python:cv.IMREAD_ANYCOLOR  | 如果设置,则以任何可能的颜色格式读取图像。 | 4 | 
|   IMREAD_LOAD_GDAL Python:cv.IMREAD_LOAD_GDAL  | 如果设置,请使用 gdal 驱动程序加载映像。 | 8 | 
|   IMREAD_REDUCED_GRAYSCALE_2 Python:cv.IMREAD_REDUCED_GRAYSCALE_2  | 如果设置,则始终将图像转换为单通道灰度图像,并将图像大小减小 1/2。 | 16 | 
|   IMREAD_REDUCED_COLOR_2 Python:cv.IMREAD_REDUCED_COLOR_2  | 如果设置,则始终将图像转换为 3 通道 BGR 彩色图像,并将图像大小减小 1/2。 | 17 | 
|   IMREAD_REDUCED_GRAYSCALE_4 Python:cv.IMREAD_REDUCED_GRAYSCALE_4  | 如果设置,则始终将图像转换为单通道灰度图像,并将图像大小减小 1/4。 | 32 | 
|   IMREAD_REDUCED_COLOR_4 Python:cv.IMREAD_REDUCED_COLOR_4  | 如果设置,则始终将图像转换为 3 通道 BGR 彩色图像,并且图像大小减小 1/4。 | 33 | 
|   IMREAD_REDUCED_GRAYSCALE_8 Python:cv.IMREAD_REDUCED_GRAYSCALE_8  | 如果设置,则始终将图像转换为单通道灰度图像,并将图像大小减小 1/8。 | 64 | 
|   IMREAD_REDUCED_COLOR_8 Python:cv.IMREAD_REDUCED_COLOR_8  | 如果设置,则始终将图像转换为 3 通道 BGR 彩色图像,并且图像大小减小 1/8。 | 65 | 
|    Python:cv.IMREAD_IGNORE_ORIENTATION  | 如果设置,则不要根据 EXIF 的方向标志旋转图像。 | 128 | 
|   IMREAD_COLOR_RGB Python:cv.IMREAD_COLOR_RGB  | 如果设置,则始终将图像转换为 3 通道 RGB 彩色图像。 | 256 | 
EXIF:
EXIF代表可交换图像文件格式。它是在图像文件(如数码照片)中存储元数据的标准格式。此元数据包括有关用于捕获图像的相机设置的信息,如光圈、快门速度、ISO和焦距。它还可能包括拍摄照片的日期和时间、GPS坐标以及相机和图像特有的其他信息的详细信息。
EXIF数据可用于摄影师分析和学习自己的作品,也可用于其他人了解照片的技术方面。
(3.1)、Flags=-1时,样返回加载的图像(使用alpha通道,否则将被裁剪)
|   IMREAD_UNCHANGED Python: cv.IMREAD_UNCHANGED  |   If set, return the loaded image as is (with alpha channel, otherwise it gets cropped). Ignore EXIF orientation.  | 
如果设置,则按原样返回加载的图像(使用alpha通道,否则将被裁剪)。忽略EXIF方向。
实例效果:

相关代码:
import cv2 as cv
import sys
img = cv.imread("images/jpg1.jpg")
img1 = cv.imread("images/jpg1.jpg",flags=-1)if img is None:sys.exit("不能读取图片.")
if img1 is None:sys.exit("不能读取图片.")cv.imshow("逆境清醒opencv教程系列,原图", img)
cv.imshow("逆境清醒opencv教程系列1,带flags读取", img1)
key = cv.waitKey(0) 
 
(3.2)、Flags=0时,将图像转换为单通道灰度图像(编解码器内部转换)
|   IMREAD_GRAYSCALE Python: cv.IMREAD_GRAYSCALE  |   If set, always convert image to the single channel grayscale image (codec internal conversion).  | 
如果设置,请始终将图像转换为单通道灰度图像(编解码器内部转换)。
实例效果:

相关代码:
import cv2 as cv
import sys
img = cv.imread("images/jpg1.jpg")
img1 = cv.imread("images/jpg1.jpg",flags=0)if img is None:sys.exit("不能读取图片.")
if img1 is None:sys.exit("不能读取图片.")cv.imshow("逆境清醒opencv教程系列,原图", img)
cv.imshow("逆境清醒opencv教程系列1,带flags读取", img1)
key = cv.waitKey(0) 
 
(3.3)、Flags=1时,将图像转换为3通道BGR彩色图像。
|   IMREAD_COLOR_BGR Python: cv.IMREAD_COLOR_BGR  |   If set, always convert image to the 3 channel BGR color image.  | 
|   IMREAD_COLOR Python: cv.IMREAD_COLOR  |   Same as IMREAD_COLOR_BGR.  | 
如果设置,请始终将图像转换为3通道BGR彩色图像。
实例效果:

相关代码:
import cv2 as cv
import sys
img = cv.imread("images/jpg1.jpg")
img1 = cv.imread("images/jpg1.jpg",flags=1)if img is None:sys.exit("不能读取图片.")
if img1 is None:sys.exit("不能读取图片.")cv.imshow("逆境清醒opencv教程系列,原图", img)
cv.imshow("逆境清醒opencv教程系列1,带flags读取", img1)
key = cv.waitKey(0) 
 
(3.4)、Flags=2时,当输入具有相应的深度时,返回16位/32位图像,否则将其转换为8位。
|   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位。
实例效果:

相关代码:
import cv2 as cv
import sys
img = cv.imread("images/jpg1.jpg")
img1 = cv.imread("images/jpg1.jpg",flags=2)if img is None:sys.exit("不能读取图片.")
if img1 is None:sys.exit("不能读取图片.")cv.imshow("逆境清醒opencv教程系列,原图", img)
cv.imshow("逆境清醒opencv教程系列1,带flags读取", img1)
key = cv.waitKey(0) 
 
(3.5)、Flags=4时,以任何可能的颜色格式读取图像
|   MREAD_ANYCOLOR Python: cv.IMREAD_ANYCOLOR  |   If set, the image is read in any possible color format.  | 
如果设置,则以任何可能的颜色格式读取图像。
实例效果:

相关代码:
import cv2 as cv
import sys
img = cv.imread("images/jpg1.jpg")
img1 = cv.imread("images/jpg1.jpg",flags=4)if img is None:sys.exit("不能读取图片.")
if img1 is None:sys.exit("不能读取图片.")cv.imshow("逆境清醒opencv教程系列,原图", img)
cv.imshow("逆境清醒opencv教程系列1,带flags读取", img1)
key = cv.waitKey(0) 
 
(3.6)、Flags=8时,使用gdal驱动程序加载图像
|   MREAD_LOAD_GDAL Python: cv.IMREAD_LOAD_GDAL  |   If set, use the gdal driver for loading the image.  | 
如果已设置,请使用gdal驱动程序加载图像。
GDAL(Geospatial Data Abstraction Library):
GDAL(Geospatial Data Abstraction Library)是一个开源的地理数据处理库,它提供了对各种格式的地理数据进行读取和写入的功能。GDAL驱动是指GDAL库中用于读取和写入地理数据格式的模块。
GDAL驱动可以用于读取和写入多种地理数据格式,包括栅格数据(如GeoTIFF、JPEG、PNG等)、矢量数据(如Shapefile、GeoJSON等)和数据库数据(如PostGIS)。每种地理数据格式都有对应的GDAL驱动,通过使用不同的驱动可以实现对不同格式地理数据的读取和写入操作。
GDAL库中包含了许多常用的地理数据格式的驱动,如GTiff(GeoTIFF格式)、PNG(PNG格式)、JPEG(JPEG格式)、ESRI Shapefile(Shapefile格式)等。此外,GDAL还支持许多其他地理数据格式的读取和写入,可以通过配置GDAL库来加载额外的驱动。
使用GDAL驱动,可以方便地读取和处理各种格式的地理数据,使地理数据处理变得更加灵活和高效。
实例效果:

相关代码:
import cv2 as cv
import sys
img = cv.imread("images/jpg1.jpg")
img1 = cv.imread("images/jpg1.jpg",flags=8)if img is None:sys.exit("不能读取图片.")
if img1 is None:sys.exit("不能读取图片.")cv.imshow("逆境清醒opencv教程系列,原图", img)
cv.imshow("逆境清醒opencv教程系列1,带flags读取", img1)
key = cv.waitKey(0) 
 
(3.7)、Flags=16时,将图像转换为单通道灰度图像,图像大小减小1/2。
|   MREAD_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。
实例效果:

相关代码:
import cv2 as cv
import sys
img = cv.imread("images/jpg1.jpg")
img1 = cv.imread("images/jpg1.jpg",flags=16)if img is None:sys.exit("不能读取图片.")
if img1 is None:sys.exit("不能读取图片.")cv.imshow("逆境清醒opencv教程系列,原图", img)
cv.imshow("逆境清醒opencv教程系列1,带flags读取", img1)
key = cv.waitKey(0) 
 
 
 
(3.8)、Flags=17时,将图像转换为3通道BGR彩色图像,并将图像大小缩小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。
实例效果:

相关代码:
import cv2 as cv
import sys
img = cv.imread("images/jpg1.jpg")
img1 = cv.imread("images/jpg1.jpg",flags=17)if img is None:sys.exit("不能读取图片.")
if img1 is None:sys.exit("不能读取图片.")cv.imshow("逆境清醒opencv教程系列,原图", img)
cv.imshow("逆境清醒opencv教程系列1,带flags读取", img1)
key = cv.waitKey(0) 
 
 
(3.9)、Flags=32时,将图像转换为单通道灰度图像,图像大小减小1/4。
|   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。
实例效果:

相关代码:
import cv2 as cv
import sys
img = cv.imread("images/jpg1.jpg")
img1 = cv.imread("images/jpg1.jpg",flags=32)if img is None:sys.exit("不能读取图片.")
if img1 is None:sys.exit("不能读取图片.")cv.imshow("逆境清醒opencv教程系列,原图", img)
cv.imshow("逆境清醒opencv教程系列1,带flags读取", img1)
key = cv.waitKey(0) 
 
(3.10)、Flags=33时,将图像转换为3通道BGR彩色图像,并将图像大小缩小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。
实例效果:

相关代码:
import cv2 as cv
import sys
img = cv.imread("images/jpg1.jpg")
img1 = cv.imread("images/jpg1.jpg",flags=33)if img is None:sys.exit("不能读取图片.")
if img1 is None:sys.exit("不能读取图片.")cv.imshow("逆境清醒opencv教程系列,原图", img)
cv.imshow("逆境清醒opencv教程系列1,带flags读取", img1)
key = cv.waitKey(0) 
 
(3.11)、Flags=64时,将图像转换为单通道灰度图像,图像大小减小1/8。
|   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。
实例效果:

相关代码:
import cv2 as cv
import sys
img = cv.imread("images/jpg1.jpg")
img1 = cv.imread("images/jpg1.jpg",flags=64)if img is None:sys.exit("不能读取图片.")
if img1 is None:sys.exit("不能读取图片.")cv.imshow("逆境清醒opencv教程系列,原图", img)
cv.imshow("逆境清醒opencv教程系列1,带flags读取", img1)
key = cv.waitKey(0) 
 
(3.12)、Flags=65时,将图像转换为3通道BGR彩色图像,图像大小减小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。
实例效果:

相关代码:
import cv2 as cv
import sys
img = cv.imread("images/jpg1.jpg")
img1 = cv.imread("images/jpg1.jpg",flags=64)if img is None:sys.exit("不能读取图片.")
if img1 is None:sys.exit("不能读取图片.")cv.imshow("逆境清醒opencv教程系列,原图", img)
cv.imshow("逆境清醒opencv教程系列1,带flags读取", img1)
key = cv.waitKey(0) 
 
 
(3.11)、Flags=128时,如果已设置,则不要根据EXIF的方向标志旋转图像。
|   IMREAD_IGNORE_ORIENTATION Python: cv.IMREAD_IGNORE_ORIENTATION  |   If set, do not rotate the image according to EXIF's orientation flag.  | 
如果已设置,则不要根据EXIF的方向标志旋转图像。
实例效果:

相关代码:
import cv2 as cv
import sys
img = cv.imread("images/jpg1.jpg")
img1 = cv.imread("images/jpg1.jpg",flags=128)
if img is None:sys.exit("不能读取图片.")
if img1 is None:sys.exit("不能读取图片.")cv.imshow("逆境清醒opencv教程系列,原图", img)
cv.imshow("逆境清醒opencv教程系列1,带flags读取", img1)
key = cv.waitKey(0) 
 
 
(3.12)、Flags=256时,将图像转换为3通道RGB彩色图像。
|   IMREAD_COLOR_RGB Python: cv.IMREAD_COLOR_RGB  |   If set, always convert image to the 3 channel RGB color image.  | 
如果设置,请始终将图像转换为3通道RGB彩色图像。
实例效果:

相关代码:
import cv2 as cv
import sys
img = cv.imread("images/jpg1.jpg")
img1 = cv.imread("images/jpg1.jpg",flags=256)
#img1 = cv.imread('images/jpg1.jpg',cv.IMREAD_COLOR_RGB)
if img is None:sys.exit("不能读取图片.")
if img1 is None:sys.exit("不能读取图片.")cv.imshow("逆境清醒opencv教程系列,原图", img)
cv.imshow("逆境清醒opencv教程系列1,带flags读取", img1)
key = cv.waitKey(0) 
 
 
 
推荐阅读:

逆境清醒文章总目录表
|   
  |   
  |   
  | 
| 给照片换底色(python+opencv) | 猫十二分类 | 基于大模型的虚拟数字人__虚拟主播实例 | 
|   
  |   
  |   
  | 
| 计算机视觉__基本图像操作(显示、读取、保存) | 直方图(颜色直方图、灰度直方图) | 直方图均衡化(调节图像亮度、对比度) | 
|   
  |   
  |   
  | 
|   语音识别实战(python代码)(一)  |   人工智能基础篇  |   计算机视觉基础__图像特征  | 
逆境清醒
|   
  |   |   | 
|   matplotlib 自带绘图样式效果展示速查(28种,全)  |    PyCharm 社区版(2024.2.3)安装、配置、创建项目  |    pycharm汉化插件无法使用也无法卸载的解决方法  | 
|   
  |   |   | 
| Three.js实例详解___旋转的精灵女孩(附完整代码和资源)(一) |    开源数据科学平台Anaconda简介  |    最新版本Anaconda 2024.06-1安装设置  | 
|   
  |   
  |   
  | 
| 立体多层玫瑰绘图源码__玫瑰花python 绘图源码集锦 |   Python 3D可视化(一)  |   让你的作品更出色——词云Word Cloud的制作方法(基于python,WordCloud,stylecloud)  | 
|   
  |   
  |   
  | 
|   python Format()函数的用法___实例详解(一)(全,例多)___各种格式化替换,format对齐打印  |   用代码写出浪漫__合集(python、matplotlib、Matlab、java绘制爱心、玫瑰花、前端特效玫瑰、爱心)  | python爱心源代码集锦(18款) | 
|   
  |   
  |   
  | 
|   Python中Print()函数的用法___实例详解(全,例多)  |   Python函数方法实例详解全集(更新中...)  |   《 Python List 列表全实例详解系列(一)》__系列总目录、列表概念  | 
|   
  |   
  | |
| 用代码过中秋,python海龟月饼你要不要尝一口? |   python练习题目录  | |
|   
  |   
  |   
  | 
| 草莓熊python turtle绘图(风车版)附源代码 |   草莓熊python turtle绘图代码(玫瑰花版)附源代码  |   草莓熊python绘图(春节版,圣诞倒数雪花版)附源代码  | 
|   
  |   
  |   | 
|   巴斯光年python turtle绘图__附源代码  | 皮卡丘python turtle海龟绘图(电力球版)附源代码 |    【中秋月饼系列】2024年立体月饼新鲜出炉----python画月饼(1)附完整代码  | 
逆境清醒
|   
  |   
  |   
  | 
|   Node.js (v19.1.0npm 8.19.3) vue.js安装配置教程(超详细)  |   色彩颜色对照表(一)(16进制、RGB、CMYK、HSV、中英文名)  | 2025年1月多家权威机构____编程语言排行榜__薪酬状况 | 
|   
  |   
  |   
  | 
|   手机屏幕坏了____怎么把里面的资料导出(18种方法)  | 【CSDN云IDE】个人使用体验和建议(含超详细操作教程)(python、webGL方向) |   查看jdk安装路径,在windows上实现多个java jdk的共存解决办法,安装java19后终端乱码的解决  | 
逆境清醒
|   
 用代码画万圣节南瓜(python,MATLAB,html css)  |  
  |   
 CSS @规则(At-rules)系列详解  | |
|   
  |   |   | |
| vue3 项目搭建教程(基于create-vue,vite,Vite + Vue) |    圣诞节系列代码专辑(目录)  |    Markdown 语法详解大全(超级版)  | |
|   
  |   
  |   
  | |
| 2023年春节祝福第二弹——送你一只守护兔,让它温暖每一个你【html5 css3】画会动的小兔子,炫酷充电,字体特 |   别具一格,原创唯美浪漫情人节表白专辑,(复制就可用)(html5,css3,svg)表白爱心代码(4套)  | SVG实例详解系列(一)(svg概述、位图和矢量图区别(图解)、SVG应用实例) | |
|   
  |   
  |   
  | |
| 【程序人生】卡塔尔世界杯元素python海龟绘图(附源代码),世界杯主题前端特效5个(附源码) | HTML+CSS+svg绘制精美彩色闪灯圣诞树,HTML+CSS+Js实时新年时间倒数倒计时(附源代码) |   2023春节祝福系列第一弹(上)(放飞祈福孔明灯,祝福大家身体健康)(附完整源代码及资源免费下载)  | 
逆境清醒
|   
  |   
  |   
  | 
|   tomcat11、tomcat10 安装配置(Windows环境)(详细图文)  |   Tomcat端口配置(详细)  |   Tomcat 启动闪退问题解决集(八大类详细)  | 
逆境清醒
  |   | |
|    信息系统项目管理师试题  |    云计算  | |
相关文章:
OpenCV imread函数读取图像__实例详解
OpenCV imread函数读取图像__实例详解 本文目录: 零、时光宝盒 一、imread函数定义 二、imread函数支持的文件格式 三、imread函数flags参数详解 (3.1)、Flags-1时,样返回加载的图像(使用alpha通道,否…...
激光线扫相机无2D图像的标定方案
方案一:基于运动控制平台的标定 适用场景:若激光线扫相机安装在可控运动平台(如机械臂、平移台、旋转台)上,且平台的运动精度已知(例如通过编码器或高精度步进电机控制)。 步骤: 标…...
【安当产品应用案例100集】034-安当KSP支持密评中存储数据的机密性和完整性
安当KSP是一套获得国密证书的专业的密钥管理系统。KSP的系统功能扩展图示如下: 我们知道商用密码应用安全性评估中,需要确保存储的数据不被篡改、删除或者破坏,必须采用合适的安全方案来确保存储数据的机密性和完整性。KSP能否满足这个需求呢…...
08.七种排序算法实现(C语言)
目录 一.排序的基本概念 1.1 排序的概念 1.2 常见的排序算法 二.常见排序算法的实现 2.1 插入排序(直接) 1.基本思想 2.直接插入排序的特性 3.代码实现 2.2 希尔排序 1.基本思想 2.希尔插入排序的特性 3.代码实现 2.3 选择排序 1.基本思想 2…...
Alibaba Spring Cloud 一 核心组件、特性
Alibaba Spring Cloud 是 Alibaba 基于 Spring Cloud 的分布式微服务解决方案,提供了一套高性能、高可靠的微服务开发和运维工具。它扩展了 Spring Cloud 的功能,并优化了许多在生产环境中的实践场景,例如服务发现、配置管理、熔断限流等。 …...
kafka学习笔记7 性能测试 —— 筑梦之路
kafka 不同的参数配置对 kafka 性能都会造成影响,通常情况下集群性能受分区、磁盘和线程等影响因素,因此需要进行性能测试,找出集群性能瓶颈和最佳参数。 # 生产者和消费者的性能测试工具 kafka-producer-perf-test.sh kafka-consumer-perf-t…...
HQChart使用教程30-K线图如何对接第3方数据45- DRAWRADAR数据结构
HQChart使用教程30-K线图如何对接第3方数据45- DRAWRADAR数据结构 效果图DRAWRADARHQChart代码地址后台数据对接说明示例数据数据结构说明效果图 DRAWRADAR DRAWRADAR是hqchart插件独有的绘制雷达图函数,可以通过麦语法脚本来绘制一个简单的雷达图数据。 雷达图显示的位置固定…...
Java集合学习:HashMap的原理
一、HashMap里的Hash是什么? 首先,我们先要搞清楚HashMap里的的Hash是啥意思。 当我们在编程过程中,往往需要对线性表进行查找操作。 在顺序表中查找时,需要从表头开始,依次遍历比较a[i]与key的值是否相等ÿ…...
ETLCloud在iPaas中的是关键角色?
在当今的数字化时代,企业越来越依赖于其处理和分析数据的能力。为了实现这一目标,企业需要将各种异构的应用和数据源集成在一起,形成一个统一的数据视图。在这一过程中,ETL(Extract, Transform, Load)和iPa…...
Docker Hub 全面解析及应对策略
在现代 DevOps 和容器化应用开发中,Docker Hub 是一个不可或缺的工具。然而,一些地区或企业对 Docker Hub 的访问受到限制,甚至全面禁止。这种现象引发了开发者和运维人员的广泛关注。那么,为什么 Docker Hub 会被禁用?…...
第五天 Labview数据记录(5.1 INI配置文件读写)
5.1 INI配置文件读写 INI配置文件是一种简单的文本文件,通常用于存储软件的配置信息。它具有以下作用: 存储软件配置参数方便软件的维护和更新提高软件的灵活性和可扩展性便于用户修改和共享配置 5.1.1 前面板 1)新建项目SaveData_Exampl…...
【算法】经典博弈论问题——巴什博弈 python
目录 前言巴什博弈(Bash Game)小试牛刀PN分析实战检验总结 前言 博弈类问题大致分为: 公平组合游戏、非公平组合游戏(绝大多数的棋类游戏)和 反常游戏 巴什博弈(Bash Game) 一共有n颗石子,两个人轮流拿,每次可以拿1~m颗…...
ES6语法
一、Let、const、var变量定义 1.let 声明的变量有严格局部作用域 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"&g…...
窥探QCC518x-308x系列与手机之间的蓝牙HCI记录与分析 - 耳机篇
上一篇是介绍如何窥探手机端Bluetooth的HCI log, 本次介绍是如何窥探Bluetooth的HCI log-耳机篇. 这次跟QCC518x/QCC308x测试的手机是Samsung S23 Ultra. QCC518x/QCC308x透过HCI界面取得Log教学. 步骤1: 开启QMDE -> 选择ADK r1102 QCC3083 Headset workspace.步骤2: 点…...
ubuntu k8s 1.31
ubuntu 系统 设置 更新源 apt-get upgradeapt upgradeapt update apt-get update释放root sudo passwd root密码su - 密码设置root可以登录 cd /etc/ssh/sshd_config.d && vi ssh.confPermitRootLogin yes PasswordAuthentication yes:wq 保存退出 systemctl resta…...
Prometheus+grafana实践:Doris数据库的监控
文章来源:乐维社区 Doris数据库背景 Doris(Apache Doris)是一个现代化的MPP(Massive Parallel Processing,大规模并行处理)数据库,主要用于在线分析处理(OLAP)场景。 D…...
【豆包MarsCode蛇年编程大作战】花样贪吃蛇
目录 引言 展示效果 prompt提示信息 第一次提示(实现基本功能) 初次实现效果 第二次提示(美化UI) 第一次美化后的效果 第二次美化后的效果 代码展示 实现在线体验链接 码上掘金使用教程 体验地址: 花样贪吃蛇…...
企业级流程架构设计思路-基于价值链的流程架构
获取更多企业流程资料 纸上得来终觉浅,绝知此事要躬行 一.企业流程分级规则定义 1.流程分类分级的总体原则 2.完整的流程体系需要体现出流程的分类分级 03.通用的流程分级方法 04.流程分级的标准 二.企业流程架构设计原则 1.流程架构设计原则 流程框架是流程体…...
AI编程工具使用技巧:在Visual Studio Code中高效利用阿里云通义灵码
AI编程工具使用技巧:在Visual Studio Code中高效利用阿里云通义灵码 前言一、通义灵码介绍1.1 通义灵码简介1.2 主要功能1.3 版本选择1.4 支持环境 二、Visual Studio Code介绍1.1 VS Code简介1.2 主要特点 三、安装VsCode3.1下载VsCode3.2.安装VsCode3.3 打开VsCod…...
钉钉群机器人设置——python版本
钉钉群机器人设置——python版本 应用场景钉钉界面操作程序开发效果展示 应用场景 由于工作需要,很多项目执行程序后出现报错信息无法第一时间收到,因此实时预警对于监控程序还是有必要。(仅个人观点) 参考文档及博客:…...
conda相比python好处
Conda 作为 Python 的环境和包管理工具,相比原生 Python 生态(如 pip 虚拟环境)有许多独特优势,尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处: 一、一站式环境管理:…...
golang循环变量捕获问题
在 Go 语言中,当在循环中启动协程(goroutine)时,如果在协程闭包中直接引用循环变量,可能会遇到一个常见的陷阱 - 循环变量捕获问题。让我详细解释一下: 问题背景 看这个代码片段: fo…...
微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】
微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来,Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...
【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)
可以使用Sqliteviz这个网站免费编写sql语句,它能够让用户直接在浏览器内练习SQL的语法,不需要安装任何软件。 链接如下: sqliteviz 注意: 在转写SQL语法时,关键字之间有一个特定的顺序,这个顺序会影响到…...
蓝桥杯3498 01串的熵
问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798, 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...
【Redis】笔记|第8节|大厂高并发缓存架构实战与优化
缓存架构 代码结构 代码详情 功能点: 多级缓存,先查本地缓存,再查Redis,最后才查数据库热点数据重建逻辑使用分布式锁,二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...
iview框架主题色的应用
1.下载 less要使用3.0.0以下的版本 npm install less2.7.3 npm install less-loader4.0.52./src/config/theme.js文件 module.exports {yellow: {theme-color: #FDCE04},blue: {theme-color: #547CE7} }在sass中使用theme配置的颜色主题,无需引入,直接可…...
FFmpeg:Windows系统小白安装及其使用
一、安装 1.访问官网 Download FFmpeg 2.点击版本目录 3.选择版本点击安装 注意这里选择的是【release buids】,注意左上角标题 例如我安装在目录 F:\FFmpeg 4.解压 5.添加环境变量 把你解压后的bin目录(即exe所在文件夹)加入系统变量…...
(一)单例模式
一、前言 单例模式属于六大创建型模式,即在软件设计过程中,主要关注创建对象的结果,并不关心创建对象的过程及细节。创建型设计模式将类对象的实例化过程进行抽象化接口设计,从而隐藏了类对象的实例是如何被创建的,封装了软件系统使用的具体对象类型。 六大创建型模式包括…...
关于uniapp展示PDF的解决方案
在 UniApp 的 H5 环境中使用 pdf-vue3 组件可以实现完整的 PDF 预览功能。以下是详细实现步骤和注意事项: 一、安装依赖 安装 pdf-vue3 和 PDF.js 核心库: npm install pdf-vue3 pdfjs-dist二、基本使用示例 <template><view class"con…...
