图像载入 imread()[OpenCV 笔记4]

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

filename

载入的图像名;

flags

指定加载图像的颜色类型,默认载入三通道彩色图像,

  • 如果取枚举类型 (OpenCV3中暂时失效),则定义如下  
enum{
  CV_LOAD_IMAGE_UNCHANGED = -1, /* 8 bit, color or not */
  CV_LOAD_IMAGE_GRAYSCALE = 0,  /* 8 bit, gray */
  CV_LOAD_IMAGE_COLOR = 1,      /* ?, color */
  CV_LOAD_IMAGE_ANYDEPTH = 2,   /* any depth, ? */
  CV_LOAD_IMAGE_ANYCOLOR = 4    /* ?, any color */
};
    • CV_LOAD_IMAGE_UNCHANGED: 在新版本中译本废置;
    • CV_LOAD_IMAGE_GRAYSCALE: 始终将图像转换成灰度,在返回;
    • CV_LOAD_IMAGE_COLOR: 始终转换到彩色,再返回;
    • CV_LOAD_IMAGE_ANYDEPTH: 如果载入图像的深度为16位或者32位,就返回对应深度图,否则就转换为8位图像在返回;
    • CV_LOAD_IMAGE_ANYCOLOR: 无损的源图像。
    • 如果输入有冲突表示,将采用较小数值,例如    
CV_LOAD_IMAGE_COLOR | CV_LOAD_IMAGE_ANYCOLOR /* equivalent to CV_LOAD_IMAGE_COLOR*/
  • 如果取int类型
    • flags>0,三通道彩色图
    • flags=0,灰度图
    • flags<0,包含Alpha通道的图像

图像储存顺序:BGR

时间: 2024-12-29 23:22:59

图像载入 imread()[OpenCV 笔记4]的相关文章

图像载入 imshow()[OpenCV 笔记5]

void imshow(const string& winname InputArray mat); winname 窗口表识名称 mat 需要显示的图像.InputArray类型,声明如下 typedef const _InputArray& InputArray; _InputArray定义比较复杂,类里先定义了一个枚举,然后是各类的模版类型和一些方法.遇到InputArray/OutputArray类型,可以把它当作Mat类型处理. 图像大小缩放 如果窗口是用CV_WINDOW_AU

图像储存容器Mat[OpenCV 笔记11]

IplImage 与 Mat IplImage是OpenCV1中的图像存储结构体,基于C接口创建.在退出之前必须release,否则就会造成内存泄露.在一些只能使用C语言的嵌入式系统中,不得不使用. IplImage* img = cvLoadImage("imagename.jpg",1); Mat类内存分配是自动完成的,不必手动开辟空间(非必须),不必在不需要时释放空间. Mat类的构成 Mat由矩阵头和一个指向存储图像矩阵的指针组成.为应该尽量避免图像的复制,加快程序运行速度,M

实例:图像载入、显示、混合与输出[OpenCV 笔记8]

是的是的,忍着尿意努力更新,就是为了更到wuli男神的部分,当然要把男神放在前面镇楼,欢迎下载配图,具体操作见code wuliEddie.jpg logo.png results.jpg LoadShowWriteImage.cxx #include <opencv2/opencv.hpp> #include <opencv2/highgui/highgui.hpp> //#include <opencv2/imgcodecs/imgcodecs.hpp> //#in

访问图像中的像素[OpenCV 笔记16]

再更一发好久没更过的OpenCV,不过其实写到这个部分对计算机视觉算法有所了解的应该可以做到用什么查什么了,所以后面可能会更的慢一点吧,既然开了新坑,还是机器学习更有研究价值吧... 图像在内存中的存储方式 灰度图像 RGB图像,矩阵的列会包含多个子列 因为内存足够大,可以实现连续存储,因此,图像中的各行就能一行一行地连接起来,形成一个长行.连续存储,有助于提高图像扫面速度,可以使用isContinuous()来判断矩阵是否是连续存储. 颜色空间缩减 对于三通道图像,一个像素对应的颜色有一千六百

查找并绘制轮廓[OpenCV 笔记XX]

好久没有更新了,原谅自己放了个假最近又在赶进度,所以...更新的内容是很靠后的第八章,因为最近工作要用就先跳了,后面会更新笔记编号...加油加油! 在二值图像中寻找轮廓 void cv::findContours ( InputOutputArray image, OutputArrayOfArrays contours, OutputArray hierarchy, int mode, int method, Point offset = Point() ) image: 输入图像,需为8位单

图像处理简单实例[OpenCV 笔记1]

几个入门的简单程序,和对应的CMakeList, 虽然简单重新测一下写一下也是好的. CMake教程传送门 图像显示 ShowImage.cxx #include <opencv2/opencv.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgcodecs/imgcodecs.hpp> int main(){ cv::Mat srcImage = cv::imread("1.jp

颜色空间转换 cvtColor()[OpenCV 笔记13]

void cvtColor(InputArray src, OutputArray dst, int code, int dstCn=0) src: 输入图像 dst: 输出图像 code: 颜色空间转换标识符 OpenCV2的CV_前缀宏命名规范被OpenCV3中的COLOR_式的宏命名前缀取代 注意RGB色彩空间默认通道顺序为BGR 具体可以参考: enum cv::ColorConversionCodes部分 dstCn: 目标图像的通道数,该参数为0时,目标图像根据源图像的通道数和具体操

OpenCV基本架构[OpenCV 笔记0]

最近正在系统学习OpenCV,将不定期发布笔记,主要按照毛星云的<OpenCV3编程入门>的顺序学习,会参考官方教程和文档.学习工具是Xcode+CMake,会对书中一部分内容更正,并加入cmakelist的内容. 书中大部分内容来自OpenCV文档,其实比较推荐官方文档和教程 OpenCV2.4.13: http://docs.opencv.org/2.4/index.html OpenCV安装路径下的include文件夹包含opencv和opencv2两个文件夹.opencv文件夹包含Op

输出图像到文件 imwrite()[OpenCV 笔记7]

bool imwrite(const string& filename, InputArray img, const vector<int>& params=vector<int>()); filename 待写入的文件名.保存图像的格式由扩展名决定. img 一般为一个Mat类型的图像 params 特定格式保存的参数编码: JPEG:params表示0到100的图片质量(CV_IMWRITE_JPEG_QUALITY),默认值为95: PNG:params表示压