当前位置: 首页 > news >正文

深入解析:OpenCV(二):加载图片

核心函数:cv2.imread()

从文件中读取(加载)图像到一个 NumPy 数组 中。
该数组是 OpenCV 的图像基本表示形式(即 cv2.Mat 在 Python 中对应 numpy.ndarray)。

函数定义

cv2.imread(filename, flags=cv2.IMREAD_COLOR)

参数详解

参数名类型说明
filenamestr图像文件路径,可以是绝对路径或相对路径
flagsint指定加载方式(见下表)

flags 参数选项(图像加载模式)

模式常量说明
cv2.IMREAD_COLOR以彩色模式加载图像(默认值),忽略透明度通道(即读取 BGR 三通道)。
cv2.IMREAD_GRAYSCALE以灰度模式加载图像(单通道)。
cv2.IMREAD_UNCHANGED保留图像的原始通道,包括 alpha 通道(如 PNG 的透明度)。
cv2.IMREAD_ANYDEPTH如果图像是 16 位或 32 位,则以相应的深度加载。
cv2.IMREAD_ANYCOLOR以任意颜色类型加载图像。
cv2.IMREAD_REDUCED_COLOR_2以 1/2 尺寸读取彩色图像(加快读取速度)。
cv2.IMREAD_REDUCED_COLOR_4以 1/4 尺寸读取彩色图像。
cv2.IMREAD_REDUCED_COLOR_8以 1/8 尺寸读取彩色图像。
cv2.IMREAD_REDUCED_GRAYSCALE_2以 1/2 尺寸读取灰度图像。
cv2.IMREAD_REDUCED_GRAYSCALE_4以 1/4 尺寸读取灰度图像。
cv2.IMREAD_REDUCED_GRAYSCALE_8以 1/8 尺寸读取灰度图像。

返回值

返回一个 numpy.ndarray

  • 彩色图像 → 3 通道矩阵 (B, G, R)
  • 灰度图像 → 单通道矩阵
  • 失败时返回 None

示例

示例 1:加载彩色图像(默认方式)

import cv2
# 读取彩色图像
img = cv2.imread("test.jpg", cv2.IMREAD_COLOR)
# 判断是否读取成功
if img is None:
print("无法加载图像,请检查路径或文件名。")
else:
print("图像加载成功,尺寸:", img.shape)
cv2.imshow("Color Image", img)
cv2.waitKey(0)
cv2.destroyAllWindows()

示例 2:加载灰度图像

import cv2
gray = cv2.imread("test.jpg", cv2.IMREAD_GRAYSCALE)
print("灰度图像尺寸:", gray.shape)
cv2.imshow("Gray Image", gray)
cv2.waitKey(0)
cv2.destroyAllWindows()

注意:灰度图像只有一个通道(shape 类似 (height, width)

示例 3:加载带透明通道的图像(如 PNG)

import cv2
img = cv2.imread("test.jpg", cv2.IMREAD_UNCHANGED)
print("图像通道数:", img.shape[2] if len(img.shape) == 3 else 1)
cv2.imshow("With Alpha", img)
cv2.waitKey(0)
cv2.destroyAllWindows()

若文件包含透明通道,则 shape 会是 (H, W, 4)(B, G, R, A)

示例 4:读取图像并缩小加载(节省内存)

import cv2
# 以 1/4 尺寸读取
img_small = cv2.imread("test.jpg", cv2.IMREAD_REDUCED_COLOR_4)
cv2.imshow("Reduced Image", img_small)
cv2.waitKey(0)
cv2.destroyAllWindows()

在处理大图片(例如 8K 或超大卫星图)时,这种模式能显著节省内存。

示例 5:错误处理(路径错误)

import cv2
import os
path = "not_exist.jpg"
img = cv2.imread(path)
if img is None:
print(f"图像 {path} 加载失败,请检查路径或文件格式。")
else:
print("图像加载成功。")

总结

功能函数示例
加载彩色图像cv2.imread(path, cv2.IMREAD_COLOR)彩色图像(默认)
加载灰度图像cv2.imread(path, cv2.IMREAD_GRAYSCALE)灰度化处理
加载含透明通道cv2.imread(path, cv2.IMREAD_UNCHANGED)保留 alpha
缩放加载cv2.imread(path, cv2.IMREAD_REDUCED_COLOR_4)加快速度
检查加载失败if img is None:检测是否成功
中文路径加载np.fromfile() + cv2.imdecode()支持中文路径
http://www.jsqmd.com/news/34261/

相关文章:

  • 2025年11月水质分析仪靠谱供应商:四参数/多参数水质分析仪知名品牌采购推荐
  • 2025 年广州漏水维修公司最新推荐排行榜:广东恒久等实力企业深度解析,助力选靠谱服务商广东专业漏水维修/广东屋面漏水维修公司推荐
  • 2025 年雷达流量计厂家最新推荐榜:综合实力、技术优势与口碑测评精选明渠雷达流量计/多普勒雷达流速流量计公司推荐
  • 20台服务器互相免密登录的配置方法
  • 2025 年广东防水补漏公司最新推荐排行榜:聚焦广州东莞佛山等地屋面卫生间地下室补漏优质企业广州地下室/佛山卫生间防水补漏公司推荐
  • FPS24 个人题解
  • 2025年防爆正压柜订制厂家权威推荐榜单:防爆配电柜/防爆配电箱/防爆检测箱源头厂家精选
  • 2025年气流粉碎机订制厂家权威推荐榜单:气流粉碎分级机/气流超微粉碎机/气流磨粉机源头厂家精选
  • 2025年11月有哪些值得推荐的洗地机品牌?友望云朵2.0实力领衔五大品牌
  • Nov 7
  • 动态规划 - 背包困难
  • 构建可用于生产环境的AI智能体
  • 2025 年 11 月食堂承包公司权威推荐榜:专业饭堂承包方案,大型食堂承包商服务实力与客户口碑深度解析
  • 2025 年 11 月农产品配送公司权威推荐榜:蔬菜、新鲜、生鲜、食堂农产品配送中心,专业高效与品质保障口碑之选
  • cdq分治 学习哔叽
  • Labubu背后的技术故事:泡泡玛特如何高效推进线上软件研发
  • 2025 年安环管家服务最新推荐排行榜:结合协会测评权威数据,揭晓专业靠谱服务机构环保设备咨询/医废危废管理安环管家服务推荐
  • 2025 年 11 月鞋子设计开发与培训权威推荐榜:鞋子打版中心、版型设计、技术培训创业班及设计培训学校综合解析
  • SMB(Server Message Block)协议实现对远程 Windows 共享服务器或 Samba 服务的文件读取
  • Round 21 解题报告
  • 应对 “读放大” 问题的新方法 —— OceanBase 中的 Merge-On-Write 表
  • 2025 年 11 月鞋样设计开发培训权威推荐榜:鞋样设计/3D开版/出格培训/打版教学机构实力解析与口碑之选
  • pg_auto_failover 环境变量导致的show命令错误
  • 2025 年 11 月鞋业设计技术培训学校推荐排行榜,鞋业设计/技术培训,鞋业加盟公司推荐,专业教学与创业支持口碑之选
  • 2025 年 11 月阁楼货架,托盘式货架,横梁式货架厂家最新推荐,聚焦资质、案例、售后的五家机构深度解读!
  • 2025 年 11 月仓储货架,重型货架,货架托盘厂家最新推荐,聚焦资质、案例、售后的五家机构深度解读!
  • 2025 年 11 月优力胶厂家推荐排行榜,防静电优力胶,高硬度优力胶,专业定制与优质服务口碑之选
  • 2025 年 11 月尼龙板厂家推荐排行榜,防静电尼龙板,透明尼龙板,白色尼龙板,耐磨尼龙板公司推荐
  • 微信公众号文章一篇最多放几个视频?
  • 2025年11月除锈剂厂家推荐排行榜:专业解析钢铁、金属、不锈钢等材料除锈解决方案