opencv常用函数详解 imread

  • Post author:
  • Post category:其他


opencv读取一个图像用到函数imread

程序示例:

#include <opencv2/core.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>
#include <iostream>
using namespace cv;
int main()
{
    std::string image_path = samples::findFile("starry_night.jpg");
    Mat img = imread(image_path, IMREAD_COLOR);
    if(img.empty())
    {
        std::cout << "Could not read the image: " << image_path << std::endl;
        return 1;
    }
    imshow("Display window", img);
    int k = waitKey(0); // Wait for a keystroke in the window
    if(k == 's')
    {
        imwrite("starry_night.png", img);
    }
    return 0;
}
将cv2导入为cv
导入系统
img = cv.imread(cv.samples.findFile(“ starry_night.jpg”))
如果img为 None:
    sys.exit(“无法读取图像。”)
cv.imshow(“显示窗口”,img)
k = cv.waitKey(0)
如果k == ord(“ s”):
    cv.imwrite(“ starry_night.png”,img)

core:库的基本构建模块

imgcodecs:提供读写功能

highgui:包含在窗口中显示图像的功能

现在,让我们分析主要代码。第一步,我们从OpenCV示例中读取图像“ starry_night.jpg”。为此,对cv :: imread函数的调用使用第一个参数指定的文件路径加载图像。第二个参数是可选的,它指定我们想要图像的格式。这可能是:

IMREAD_COLOR以BGR 8位格式加载图像。这是此处使用的默认值。

IMREAD_UNCHANGED照原样加载图像(包括Alpha通道(如果存在))

IMREAD_GRAYSCALE将图像作为一种强度加载

读入图像后,数据将存储在cv :: Mat对象中。

OpenCV支持Windows位图(bmp),便携式图像格式(pbm,pgm,ppm)和Sun栅格(sr,ras)图像格式。借助插件(如果您自己构建库,则需要指定使用它们,但是默认情况下在我们提供的软件包中),您还可以加载图像格式,例如JPEG(jpeg,jpg,jpe),JPEG 2000(jp2-在CMake中代号为Jasper),TIFF文件(tiff,tif)和便携式网络图形(png)。此外,OpenEXR也有可能。

因为我们希望在用户按下某个键之前一直显示窗口(否则该程序将以太快的速度结束),所以我们使用cv :: waitKey函数,该函数的唯一参数就是等待用户输入的时间(以毫秒)。零意味着永远等待。返回值是按下的键。

最后,如果按下的键是“ s”键,则将图像写入文件。为此,将调用cv :: imwrite函数,该函数具有文件路径和cv :: Mat对象作为参数。



版权声明:本文为weixin_43087913原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。