尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

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

深入解析:OpenCV(二):加载图片
📅 发布时间:2026/6/21 23:22:36

核心函数: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()支持中文路径

相关新闻

  • 2025 年雷达流量计厂家最新推荐榜:综合实力、技术优势与口碑测评精选明渠雷达流量计/多普勒雷达流速流量计公司推荐
  • 2025年防爆正压柜订制厂家权威推荐榜单:防爆配电柜/防爆配电箱/防爆检测箱源头厂家精选
  • 2025 年 11 月农产品配送公司权威推荐榜:蔬菜、新鲜、生鲜、食堂农产品配送中心,专业高效与品质保障口碑之选

最新新闻

  • Custom Agents:可编程智能体如何重构软件工程流水线
  • DeepSeek V4动态KV压缩与结构化稀疏注意力技术解析
  • Web安全实战:XSS跨站脚本攻击原理、类型与防御全解析
  • Gemini 3.1 Pro实现Nature级科研绘图的原理与实践
  • Java面试常见陷阱与应对策略,助你脱颖而出
  • 大模型推理如何实现Download Once, Infer Everywhere

日新闻

  • 2026速览惠州叛逆青少年学校前十大排名名单出炉 - 武汉中职最新信息发布
  • 2026上饶白蚁消杀哪家好?15年本土2大权威白蚁防治公司推荐(金盾虫控/青蚁卫士) - 我叫一
  • 天龙八部单机版终极数据管理工具:5个技巧快速掌握游戏数据编辑

周新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号