c语言opencv读取图像_matlab读取一幅图像并显示

c语言opencv读取图像_matlab读取一幅图像并显示函数cv2.imread()用于从指定的文件读取图像OpenCV完整例程200篇01.图像的读取(cv2.imread)02.图像的保存(cv2.imwrite)03.图像的显示(cv2.imshow)07.图像的创建(np.zeros)08.图像的复制(np.copy)09.图像的裁剪(cv2.selectROI)10.图像的拼接(np.hstack)……………

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

专栏地址:『youcans 的 OpenCV 例程300篇 – 总目录』
01. 图像的读取(cv2.imread)
02. 图像的保存(cv2.imwrite)
03. 图像的显示(cv2.imshow)
04. 用 matplotlib 显示图像(plt.imshow)

【OpenCV 例程300篇】001. 图像的读取(cv2.imread)

函数 cv2.imread() 用于从指定的文件读取图像。

函数说明:

retval = cv.imread(filename[, flags])

  • 函数 cv2.imread() 从指定文件加载图像并返回该图像的矩阵。
  • 如果无法读取图像(文件丢失,权限不正确,格式不支持或无效),该函数返回一个空矩阵。
  • 目前支持的文件格式:
    • Windows 位图 – * .bmp,* .dib
    • JPEG 文件 – * .jpeg,* .jpg,*.jpe
    • JPEG 2000文件 – * .jp2
    • 便携式网络图形 – * .png
    • WebP – * .webp
    • 便携式图像格式 – * .pbm,* .pgm,* .ppm * .pxm,* .pnm
    • TIFF 文件 – * .tiff,* .tif

参数说明:

  • filename:读取图像的文件路径和文件名
  • flags:读取图片的方式,可选项
    • cv2.IMREAD_COLOR(1):始终将图像转换为 3 通道BGR彩色图像,默认方式
    • cv2.IMREAD_GRAYSCALE(0):始终将图像转换为单通道灰度图像
    • cv2.IMREAD_UNCHANGED(-1):按原样返回加载的图像(使用Alpha通道)
    • cv2.IMREAD_ANYDEPTH(2):在输入具有相应深度时返回16位/ 32位图像,否则将其转换为8位
    • cv2.IMREAD_ANYCOLOR(4):以任何可能的颜色格式读取图像
  • 返回值 retval:读取的 OpenCV 图像,nparray 多维数组

注意事项:

  1. OpenCV 读取图像文件,返回值是一个nparray 多维数组。OpenCV 对图像的任何操作,本质上就是对 Numpy 多维数组的运算。
  2. OpenCV 中彩色图像使用 BGR 格式,而 PIL、PyQt、matplotlib 等库使用的是 RGB 格式。
  3. cv2.imread() 如果无法从指定文件读取图像,并不会报错,而是数返回一个空矩阵。
  4. cv2.imread() 指定图片的存储路径和文件名,在 python3 中不支持中文和空格(但并不会报错)。必须使用中文时,可以使用 cv2.imdecode() 处理,参见扩展例程。
  5. cv2.imread() 读取图像时默认忽略透明通道,但可以使用 CV_LOAD_IMAGE_UNCHANGED 参数读取透明通道。
  6. 对于彩色图像,可以使用 flags=0 按照读取为灰度图像。

基本例程:

    # 1.1 图像的读取
    imgFile = "../images/imgLena.tif"  # 读取文件的路径
    img1 = cv2.imread(imgFile, flags=1)  # flags=1 读取彩色图像(BGR)
    img2 = cv2.imread(imgFile, flags=0)  # flags=0 读取为灰度图像

扩展例程:

    # 1.2 从网络读取图像
    import urllib.request as request
    response = request.urlopen("https://profile.csdnimg.cn/8/E/F/0_youcans")
    imgUrl = cv2.imdecode(np.array(bytearray(response.read()), dtype=np.uint8), -1)
    # 1.3 读取中文路径的图像
    imgFile = "../images/测试图01.png"  # 带有中文的文件路径和文件名
    # imread() 不支持中文路径和文件名,读取失败,但不会报错!
    # img = cv2.imread(imgFile, flags=1)
    # 使用 imdecode 可以读取带有中文的文件路径和文件名
    img = cv2.imdecode(np.fromfile(imgFile, dtype=np.uint8), -1)

在这里插入图片描述

(本节完)


版权声明:
youcans@xupt 原创作品,转载必须标注原文链接:(https://blog.csdn.net/youcans/article/details/121168935)
Copyright 2022 youcans, XUPT
Crated:2021-11-18
更多内容请见:>『youcans 的 OpenCV 例程300篇 – 总目录』(https://blog.csdn.net/youcans/article/details/125112487)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/183774.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • dubbo简介

    dubbo简介dubbo简介

  • linux安装lib包_linux生成静态库

    linux安装lib包_linux生成静态库前几天手里的智能锁项目,收到产品的建议(命令)说,就是人脸识别成功的时候,不要只显示摄像头捕捉到的图像,要弄个酷炫一点的背景,背景里图片中间有个圆圈,人脸就放到圆圈里也就是类似这样。。当然,这是我思考了好几个小时的结果,开始想不明白要怎么实现,其实想通了也很简单,三个步骤A把背景图像的RGB读出来out_bufB把摄像头采集到的图像读出来(分辨率和背…

    2022年10月31日
  • 运算放大器 之 概述

    运算放大器 之 概述转载来源:[维基百科]《运算放大器》运算放大器(英语:OperationalAmplifier,简称OP、OPA、op-amp、运放)是一种直流耦合,差模(差动模式)输入、通常为单端输出(Differential-in,single-endedoutput)的高增益(gain)电压放大器。在这种配置下,运算放大器能产生一个比输入端电势差大数十万倍的输出电势(对地而言)。因为…

  • angularJS 事件广播与接收[转]

    angularJS 事件广播与接收[转]

  • java实现手机短信验证全过程[通俗易懂]

    java实现手机短信验证全过程[通俗易懂]手机短信验证现在在各种系统可以说都是用的非常普遍的,这个可能是方便和安全性的考虑,所以才广泛的使用,这篇文章就以一个短信接口的实例,来讲解一下怎么使用短信接口。一、前期工作首先,我们需要选定一家短信接口的公司,然后去注册和获取一系列的ID等,然后就可以正式的创建我们的短信业务了。下面以某个短信接口为例讲解。1.1、注册进入这个网址注册一个账户1.2、获取到ACCOUNT…

  • 超级文本编辑器Sublime Text3「建议收藏」

    超级文本编辑器Sublime Text3「建议收藏」简介基础插件Package-Control中文乱码Ubuntu下输入中文输入法跟随光标在SublimeText中运行脚本解释器文件路径补全表格编辑语法高亮与着色代码匹配高亮BracketHighlighter代码布局Alignment代码对比sublimergeCompareSide-By-Side代码模板专用插件ForLua…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号