Opencv常用函数
一.图像读写与简单处理
1. Mat cv::imread(const String& filename, int flags=IMREAD_COLOR).
imread函数加载filename图像,读入时,原始图像数据不可被修改。 flags可取的值如下:IMREAD_UNCHANGED(原始图像是什么,读入的就是什么), IMREAD_GRAYSCALE(始终将图像转换为单通道灰度图像), IMREAD_COLOR(始终将图像转换为三通道BGR彩色图像), IMRAD_ANYDEPTH, IMREAD_ANYCOLOR, IMREAD_LOAD_GOAL, IMREAD_REDUCED_GRAYSCALE_2, (单通道灰度图,尺寸变为原图的1/2), IMREAD_REDUCED_COLOR_2(三通道BGR彩图,尺寸变为原图的1/2), IMREAD_REDUCED_GRAYSCALE_4(单通道灰度图,尺寸变为原图的1/2), IMREAD_REDUCED_COLOR_4(三通道BGR彩图,尺寸变为原图的1/4), IMREAD_REDUCED_GRAYSCALE_8(单通道灰度图,尺寸变为原图的1/8), IMREAD_REDUCED_COLOR_8(三通道BGR彩图,尺寸变为原图的1/8)
eum cv::ImreadModes{ cv::IMREAD_UNCHANGED=-1, cv::IMREAD_GRAYSCALE=0, cv::IMREAD_COLOR=1, cv::IMREAD_ANYDEPTH=2, cv::IMREAD_ANYCOLOR=4, cv::IMREAD_LOAD_GDAL=8, cv::IMREAD_REDUCED_GRAYSCALE_2=16, cv::IMREAD_REDUCED_COLOR_2=17, cv::IMREAD_REDUCED_GRAYSCALE_4=32, cv::IMREAD_REDUCED_GRASCALE_8=64, cv::IMREAD_REDUCED_COLOR_8=65}
2. bool cv::imwrite(const String& filename, InputArray img, const std::vector<int>& params=std::vector<int>())
将输入矩阵img保存为名为filename的图像,保存时,图像名不可被修改。只有八位单通道(或者CV_16U in case of PNG, JPEG2000, and tiff)或者三通道(BGR通道顺序)的图像可以用该函数保存。也可以以4通道BGRA的格式存储PNG图像,全透明的像素alpha值为0,完全不透明的像素alpha值为255. vector<int> 格式的params是在图像存储过程中的,一系列参数。它可取:IMWRITE_JPEG_QUALITY(JPEG质量可取值为0~100,越高,质量越好,默认值是95), IMWRITE_JPEG_PROGRESSIVE(), IMWRITE_JPEG_OPTIMIZE(), IMWRITE_JPEG_RST_INTRVAL(), IMWRITE_JPEG_LUMA_QUALITY(), IMWRITE_JPEG_CHRMOMA_QUALITY(), IMWRITE_PNG_COMPRESSION(PNG的压缩等级可取0~9, 值越高,压缩后的尺寸越小,但压缩时间越长,默认值是3), IMWRITE_PNG_STRATEGY(), IMWRITE_PNG_BILEVEL(), IMWRITE_PXM_BINARY(), IMWRITE_WEBP_QUALITY(), IMWRITE_PNG_STRATEGY_DEFAULT(), IMWRITE_PNG_STRTEGY_FILERED(), IMWRITE_PNG_STRATEGY_HUFFMAN_ONLY(), IMWRITE_PNG_STRATEGY_RLE(), IMWRITE_PNG_STRATEGY_FIXED().
eum cv::ImwriteFlags{ cv::IMWRITE_JPEG_QUALITY=1, cv::IMWRITE_JPEG_PROGRESSIVE=2, cv::IMWRITE_JPEG_OPTIMIZE=3, cv::IMWRITE_JPEG_RST_INTERVAL=4, cv::IMWRITE_JPEG_LUMA_QUALITY=5, cv::IMWRITE_JPEG_CHROMA_QUALITY=6, cv::IMWRITE_PNG_COMPRESSION=16, cv::IMWRITE_PNG_STRATEGY=17, cv::IMWRITE_PNG_BILEVEL=18, cv::IMWRITE_PXM_BINARY=32, cv::IMWRITE_WEBP_QUALITY=64}
eum cv::ImwritePNGFlags{
cv::IMWRITE_PNG_STRATEGY_DEFAULT=0, cv::IMWRITE_PNG_STRATEGY_FILTERED=1, cv::IMWRITE_PNG_STRATEGY_HUFFMAN_ONLY=2, cv::IMWRITE_PNG_STRATEGY_RLE=3, cv::IMWRITE_PNG_STRATEGY_FIXED=4}
3. Mat cv::imdecode(InputArray buf, int flags)或者 Mat cv::imdecode(InputArray buf, int flags, Mat* dst)
从内存缓冲区中读取一个图像
4.bool cv::imencode(const String& ext, InputArray img, std::vector<uchar>& buf, const std::vector<int> & params=std::vector<int>())
将一个图像编码入内存缓冲区中
########分割线###########
5. void cv::cvtColor(InputArray src, OutputArray dst, int code, int dstCn=0)
将图像从一个色彩空间转换到另一个色彩空间。 OpenCV标准的颜色格式是BGR,即在一个标准的(24bit)彩图中,第一个byte是一个八位的蓝色部分,第二个byte是绿色部分,第三个byte是红色部分。后面的第4,5,6个byte就是第二像素的三个通道,以此类推。R,G,B三个通道的常规取值范围为:(1)对于CV_8U类型的图像,范围为0~255。(2)对于CV_16U类型的图像,范围为0~65535. (3) 对于CV_32F图像,其取值范围是0~1。所以,对于线性变换来说,取值范围没什么关系,例如COLOR_BGR2GRAY,都是CV_8U类型图像之间的转换。但是对于非线性变换,输入的RGB图像需要归一化到合理的取值范围内,以得到正确的结果。例如,如果你有一个32位浮点图像CV_32F,它是由8位图像CV_8U没有任何缩放的直接转换过来,那么它的取值变换范围为0~255,而不是所期望的0~1.所以在调用cvtColor函数前,我们需要先进行图像缩放。例如:
img *=1./255;
cvtColor(img ,img COLOR_BGR2Luv);
如果转换过程增加了alpha通道,它的值会被设置为对应通道取值的最大值:255 for CV_8U, 65535 for CV_16U, 1 for CV_32F. 至于code值,太多,在此不加以枚举。
#define CV_Assert(expr) if(!!(expr)); else cv::error(cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__)
在运行时,检查条件expr是否成立,若不成立会抛出异常。
static _Tp cv::saturate_cast(uchar v)
模板函数,实现从一个基本类型到另一个基本类型的精确转换。
saturate的意思就是说,当输入值v超高了目标类型的范围,该值会被限幅。例如:
uchar a=saturate_cast<uchar>(-100); //a=0
short b=saturate_cast<short>(33333.333);//b=32767;
Opencv常用函数的更多相关文章
- OpenCV——常用函数查询
1.cvLoadImage:将图像文件加载至内存: 2.cvNamedWindow:在屏幕上创建一个窗口: 3.cvShowImage:在一个已创建好的窗口中显示图像: 4.cvWaitKey:使程序 ...
- OPENCV 常用函数
1.cvCloneImage: IplImage* cvCloneImage( const IplImage* image ); 在使用函数之前,不用特地开辟内存,即该函数会自己开一段内存,然后复制好 ...
- opencv 常用函数介绍
××××××××××××××××××××××××××××××××××××××× CvScalar imgmean,imgstd; double imgmax,imgmin; cvAvgSdv(img, ...
- OpenCV常用函数分析
1. 聚类:将拥有最相似属性的数据归为一类. K-means聚类: python调用格式:compacness, labels, centers = cv2.kmeans(data, K, crite ...
- opencv常用函数备忘
//显示图片 IplImage * src = cvLoadImage("xx.JPG"); cvNamedWindow(); cvShowImage("show_ima ...
- Opencv常用函数讲解
1.approxPolyDP(Mat(ps), poly, 5, true);//根据点集,拟合出多边形 2.fillConvexPoly(mask, Mat(ps), Scalar(255));根据 ...
- OpenCV图像处理中常用函数汇总(1)
//俗话说:好记性不如烂笔头 //用到opencv 中的函数时往往会一时记不起这个函数的具体参数怎么设置,故在此将常用函数做一汇总: Mat srcImage = imread("C:/Us ...
- Opencv 3.3.0 常用函数
如何调图像的亮度和对比度? //如何增加图片的对比度或亮度? void contrastOrBrightAdjust(InputArray &src,OutputArray &dst, ...
- [opencv]常用阵列操作函数总结
/*=========================================================================*/ // 阵列操作 /*============ ...
随机推荐
- mysql解压版的配置安装
先在CMD进入编辑筐,用管理员身份运行 切换到mysql的解压目录的bin目录下并输入mysqld -install 这个时候启动服务, 发现出错!!! 检查这两个文件 这里的路径一定要核对 再次启动 ...
- cookie解决 未登录加入购物车 第一次访问弹出新手引导页面
浏览器携带cookie到服务器, 点击加入购物车-->后台检查-->是否登录(有没有sessionid) 没有登录--->secookie()返回给浏览器,把传递过来的商品id, 属 ...
- HDU 1724 Ellipse 自适应simpson积分
simpson公式是用于积分求解的比较简单的方法(有模板都简单…… 下面是simpson公式(很明显 这个公式的证明我并不会…… (盗图…… 因为一段函数基本不可能很规则 所以我们要用自适应积分的方法 ...
- VM虚拟机的配置文件(.vmx)损坏修复
来源://http://blog.csdn.net/houffee/article/details/18398603 VM虚拟机中使用.vmx文件保存虚拟机的所有软硬件配置,如果意外损坏的话将会出现不 ...
- wpf 线程与界面线程
Thread thread = new Thread(new ThreadStart(() => { VisualTarget visualTarget = ...
- sqlcipher for android
github 地址 https://github.com/sqlcipher/android-database-sqlcipher 官网教程 https://www.zetetic.net/sqlci ...
- PHP5.5在windows 安装使用 memcached 服务端的方法以及 php_memcache.dll 下载
PHP5.5 在windows下安装 memcached 的方法 下载服务端资源 http://download.csdn.net/detail/zsjangel/7104727 下载完成后,解压(我 ...
- es5 中类的2种基本实现方法
function test(){ this.a = 1; this.func = function(){ // var a = 3;下面的this 取的是上面的1,这个不影响 return this. ...
- 面试题-Java基础-集合和数组
1.Java集合类框架的基本接口有哪些? 集合类接口指定了一组叫做元素的对象.集合类接口的每一种具体的实现类都可以选择以它自己的方式对元素进行保存和排序.有的集合类允许重复的键,有些不允许.Java集 ...
- ansible Strategies
Strategies 控制task的执行方式, 在2.0中增加了"free" Strategies, 可以允许每个host尽快的执行完一个play. 默认是Strategies是l ...