• OpenCV项目开发实战--如何读取图像(Python、C++)代码实现


    在 OpenCV 中,您可以使用imread轻松读取不同文件格式(JPG、PNG、TIFF 等)的图像。基本用法如下

    C++

    Mat imread(const string& filename, int flags=IMREAD_COLOR )

    Python

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

    flags选项用于控制图像的读取方式。让我们看一些常见的例子。在下面的所有示例中,请确保为 C++ 使用正确的命名空间并为 Python 导入 OpenCV。
    C++

     
    using namespace cv;

    Python

    import cv2

    读取为 8 位/通道彩色图像(无 Alpha 通道)

    绝大多数图像是每通道 8 位(或 24 位)图像。可以使用默认标志读取它们。

    C++

     
    Mat image = imread("image.jpg");

    Python

    image = cv2.imread("image.jpg")

    读取为 8 位灰度图像

    C++

     
    Mat image = imread("image.jpg", IMREAD_GRAYSCALE);

    Python

    image = cv2.imread("image.jpg", cv2.IMREAD_GRAYSCALE)

    读取 16 位/通道彩色图像

    大多数数码单反相机都能够以高于 8 位/通道的位深度记录图像。来自这些相机的原始图像可以转换为 16 位/通道 PNG 或 TIFF 图像。这些 16 位/通道图像可以使用C++读取

    C++

    Mat image = imread("image.png", IMREAD_ANYCOLOR | IMREAD_ANYDEPTH);

    Python

    1. im = cv2.imread("image.png", cv2.IMREAD_ANYCOLOR | cv2.IMREAD_ANYDEPTH)

    您也可以改用标志 IMREAD_UNCHANGED。请参见下面的示例。

    在 OpenCV 中读取透明 PNG 或 TIFF

    透明图像有四个通道——3 个用于颜色,1 个用于透明度。可以使用 IMREAD_UNCHANGED 标志在 OpenCV 中读取这些图像。
    C++

     
    Mat image = imread("image.png", IMREAD_UNCHANGED);

    Python

    im = cv2.imread("image.png", cv2.IMREAD_UNCHANGED)

    注意: CV_LOAD_IMAGE_COLOR、CV_LOAD_IMAGE_GRAYSCALE、CV_LOAD_IMAGE_ANYCOLOR、CV_LOAD_IMAGE_ANYDEPTH 和 CV_LOAD_IMAGE_UNCHANGED 将在 OpenCV 的未来版本中删除

  • 相关阅读:
    笔试强训day1
    字节的一个小问题 npm 和 yarn不一样吗?
    【LeetCode-中等题】515. 在每个树行中找最大值
    MySQL笔记 去除表中的重复数据
    Unity —— 复建(day1)
    一文拿捏Spring之IOC、循环依赖、Spring的设计模式
    MySQL索引
    Haskell中的数据交换:通过http-conduit发送JSON请求
    联发科技2023届提前批IC笔试(题目)
    十、Spring Boot 安全管理(4)
  • 原文地址:https://blog.csdn.net/tianqiquan/article/details/131145091