OpenCV2:幼儿园篇 第二章 读取图像

---恢复内容开始---

一.简介

将图像文件读入内存,可以用cv::imread()函数

 

二.读取图像

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

  •  Mat:

    如果读取图像失败,返回一个空矩阵(NULL)

  • filename:

    windows位图文件:BMP,DIB

    JPEG文件:JPEG,JPG,JPE

    便携式网络图片:PNG

    便携式图像格式:PBM,PGM,PPM

    Sun rasters:SR,RAS

    TIFF文件:TIFF,TIF

    OpenEXR HDR图片:EXR

    JPEG 2000图片:jp2

  • flag:

    flag>0,返回3通道图像

    flag=0,返回单通道图像

    flag<0,不对图像进行通道转换

 

三.示例

Mat im=imread("1.jpg",0);

 

---恢复内容结束---

一.简介

将图像文件读入内存,可以用cv::imread()函数

 

二.读取图像

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

  •  Mat:

    如果读取图像失败,返回一个空矩阵(NULL)

  • filename:

    windows位图文件:BMP,DIB

    JPEG文件:JPEG,JPG,JPE

    便携式网络图片:PNG

    便携式图像格式:PBM,PGM,PPM

    Sun rasters:SR,RAS

    TIFF文件:TIFF,TIF

    OpenEXR HDR图片:EXR

    JPEG 2000图片:jp2

  • flag:

    flag>0,返回3通道图像

    flag=0,返回单通道图像

    flag<0,不对图像进行通道转换

 

Mat im=imread("1.jpg",0);

 

三.批量读取图像

1.有序

 

#include <iostream>
#include <stdio.h>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>

using namespace cv;
using namespace std;

int main()
{

	// 定义相关参数
	const int num = 100;
	char fileName[50];
	char windowName[50];
	cv::Mat srcImage;
	for (int i = 1; i <= 2
		; i++)
	{
		// sprintf读入指定路径下的图片序列
		sprintf(fileName, "%d.jpg", i);
		
		// 按照图像文件名读取
		srcImage = cv::imread(fileName);
		if (!srcImage.data)
		{
			std::cout << "No data!" << std::endl;
			return -1;
		}
		cv::namedWindow(fileName);
		cv::imshow(fileName,srcImage);
	}

	cv::waitKey(0);
	return 0;
}

 

 

 

 

 

posted @ 2019-06-24 14:23  言午丶  阅读(227)  评论(0编辑  收藏  举报