关闭
当前搜索:

OpenCV FileStorage类的数据读写操作

OpenCV FileStorage类的数据读写操作OpenCV的许多应用都需要使用数据的存储于读取,例如经过3D校准后的相机,需要存储校准结果矩阵,以方便下次调用该数据;基于机器学习的应用,同样需要将学习得到的参数保存等。OpenCV通过XML/YAML格式实现数据持久化。本文简要梳理了使用FileStorage类进行基本数据持久化操作,给出了示例代码。主要内容包括:FileStorage类构造...
阅读(137) 评论(0)

OpenCV HOGDescriptor 参数图解

HOG的基本理论请参考:http://blog.csdn.net/guyuealian/article/details/71702995最近要做图像特征提取,可能要用下HOG特征,所以研究了下OpenCV的HOG描述子。OpenCV中的HOG特征提取功能使用了HOGDescriptor这个类来进行封装,其中也有现成的行人检测的接口。然而,无论是OpenCV官方说明文档还是各个中英文网站目前都没有这...
阅读(101) 评论(0)

OpenCV3.0或OpenCV3.1的SVM操作

OpenCV2.0 SVM代码及其分析OpenCV 在很久以前就集成了SVM的功能,现在OpenCV升级到了3.0和3.1了,很多人都不习惯了怎么调用OpenCV中的SVM功能了。在之前OpenCV的SVM调用一直有个案例:首先,给定几组训练数据,并且给了label所对应的值。然后经过训练之后,对图像的各个位置进行预测是1还是-1。如果是1的话,用绿色来表示,如果是-1呢,用蓝色表示。并且还画出几...
阅读(155) 评论(0)

OpenCV图像各向异性滤波

各向异性概念各向异性(英文名称:anisotropy)是指材料在各方向的力学和物理性能呈现差异的特性。晶体的各向异性即沿晶格的不同方向,原子排列的周期性和疏密程度不尽相同,由此导致晶体在不同方向的物理化学特性也不同,这就是晶体的各向异性。亦称“非均质性”。物体的全部或部分物理、化学等性质随方向的不同而各自表现出一定的差异的特性。即在不同的方向所测得的性能数值不同。对图像来说各向异性就是在每个像素点...
阅读(155) 评论(0)

OpenCV isContinuous()连续存储的问题

OpenCV isContinuous()连续存储的问题 如果矩阵元素在每行末尾连续存储而没有间隙,则方法返回true。 否则,它返回false。 显然,对于1x1或1xN矩阵总是连续的。一般 用Mat :: create创建的矩阵总是连续的。 但是,如果使用Mat :: col,Mat :: diag等提取矩阵的一部分,或者为外部分配的数据构造矩阵头,则此类矩阵可能不再具有此属性。 连续性标志存储在Mat :: flags字段中,并在构造矩阵标题时自动计算。 因此,连续性检查是一个非常快...
阅读(232) 评论(0)

[置顶] OpenCV android sdk开发实例 OpenCV android NDK实例

OpenCV android sdk开发实例 OpenCV android NDK实例 【尊重原创,转载请注明出处】http://blog.csdn.net/guyuealian/article/details/78113325 在Android应用中调用OpenCV进行图像处理的方法有很多种,考虑到性能问题,本人推荐使用NDK进行开发,毕竟C/C++要比Java性能好的多。博客会给出...
阅读(1575) 评论(0)

图像中某点绕点旋转后的坐标,图像旋转坐标位置

图像中某点绕点旋转后的坐标,图像中像素点旋转后的坐标位置 在平面坐标上,任意点P(x1,y1),绕一个坐标点Q(x2,y2)旋转θ角度后,新的坐标设为(x, y)的计算公式: x= (x1 - x2)*cos(θ) - (y1 - y2)*sin(θ) + x2 ; y= (x1 - x2)*sin(θ) + (y1 - y2)*cos(θ) + y2 ; 这是在平面...
阅读(866) 评论(0)

OpenCV删除面积小的区域 实现图像二值化分割 标记连通区域

OpenCV实现图像二值化分割 标记连通区域 删除面积小的区域,使用OpenCV实现这一功能:对图像进行二值化分割,并用“红色矩形”标记连通区域的面积,为了减少噪声的干扰,删除面积小的区域,代码中将连通区域面积(像素个数)不足100的区域认为是噪声点,并将其删除(即置为背景黑色)。本人制作了一个GIF动画图,以便大家观看效果图:...
阅读(736) 评论(0)

[置顶] OpenCV图像剪切的扩展和高级用法:任意裁剪,边界扩充

OpenCV图像剪切的扩展和高级用法:任意裁剪,边界扩充 , 利用感兴趣区域ROI和矩形类Rect,在OpenCV中可以很简单的就实现图像裁剪和剪切的功能,但剪切时常常会出现超出图像边界的区域的情况,对于超出图像边界的区域,我们必须进行特殊的处理,以避免出组数组越界的错误,如图1所示的裁剪错误。 对于特殊的要求,如,我们希望可以指定的颜色来填充,或者复制边界的像素的填充,甚至想镜像某个位置填充超出的边界,应该怎么办呢?OpenCV3中提供了一个图像边界的函数cv::copyMakeBorder(对应open...
阅读(7718) 评论(11)

opecv中cvAdds和cvAdd中的mask的用法探讨

Fn :包含 mask 参数的一些函数如下 [摘自opencv 2.3.1版本 C++]void add(InputArray src1, InputArray src2, OutputArray dst, InputArray mask=noArray(), int dtype=-1)subtractbitwise_and, bitwise_not, bitwise_or, bitwise_xo...
阅读(331) 评论(0)

OpenCV图像旋转,指定填充背景颜色边界颜色

OpenCV图像旋转,指定填充背景颜色边界颜色OpenCV与图像旋转有关的函数:(1)warpAffine函数OpenCV官方对warpAffine的解释: void warpAffine(InputArray src, OutputArray dst, InputArray M, Size dsize, int flags=INTER_LINEAR, int borderMode=BO...
阅读(1788) 评论(0)

OpenCV获取图像某点的颜色值,并设置某点的颜色

以下用OpenCV实现获取图像中某点的颜色值,并设置某点区域的颜色,OpenCV获取图像某点的颜色值,并设置某点的颜色...
阅读(587) 评论(0)

OpenCV在图像中添加文字,画点,画直线

OpenCV在图像中添加文字,画点,画直线 ,OpenCV在图像中添加文字,绘制点,绘制直线 ,...
阅读(1778) 评论(0)

OpenCV图像剪切,超出图像区域指定颜色填充

OpenCV图像剪切,超出部分区域指定颜色填充, 在OpenCV中实现图像裁剪和剪切是很简单的,但剪切时常常会出现超出边界的区域的情况,对于超出图像边界的区域,我们希望可以采用指定的颜色来填充。OpenCV3中提供了一个填充边界的函数cv::copyMakeBorder(对应opencv2中的cvCopyMakeBorder),利用这个函数,可以实现这个功能。下面实现一个Demo,对于超出剪切的区域,用红色填充:...
阅读(347) 评论(0)

Dlib学习笔记:解决dlib array2d转 OpenCV Mat时颜色失真

解决dlib array2d转 OpenCV Mat时颜色失真 在Dlib库中图像存储是使用array2d类型,而在OpenCV是使用Mat类型,Dlib中提供了#include ,可实现dlib array2d与 OpenCV Mat的互转。其中toMat对象可将dlib的图像转为OpenCV的Mat类型,而cv_image对象可将OpenCV的Mat类型转为dlib类型的...
阅读(1116) 评论(3)

[置顶] Dlib学习笔记:dlib array2d与 OpenCV Mat互转

在Dlib库中图像存储是使用array2d类型,而在OpenCV是使用Mat类型,Dlib中提供了#include ,可实现dlib array2d与 OpenCV Mat的互转。其中toMat对象可将dlib的图像转为OpenCV的Mat类型,而cv_image对象可将OpenCV的Mat类型转为dlib类型的图像。详见官网:http://dlib.net/imaging.html#rgb_pixel...
阅读(1998) 评论(1)

MFC使用OpenCV在文档窗口中显示图像(支持多图片格式)

MFC使用OpenCV在文档窗口中显示图像(支持多格式图片),在VS2010中新建一个 MFC单文档或多文档的应用程序,结合OpenCV强大的图像处理工具,我们可以在MFC的“File/open”直接打开并显示图像,具体方法如下: (1)首先新建一个单文档或多文档的应用程序,项目名:Demo1 (2)在“Demo1Doc.h ”头文件中包含“#include ”并声明Mat变量img...
阅读(1705) 评论(1)

OpenCV Mat类详解和用法

Mat本质上是由两个数据部分组成的类: (包含信息有矩阵的大小,用于存储的方法,矩阵存储的地址等) 的矩阵头和一个指针,指向包含了像素值的矩阵(可根据选择用于存储的方法采用任何维度存储数据)。矩阵头部的大小是恒定的。然而,矩阵本身的大小因图像的不同而不同,通常是较大的数量级。因此,当你在您的程序中传递图像并在有些时候创建图像副本您需要花费很大的代价生成图像矩阵本身,而不是图像的头部。OpenCV 是图像处理库,它包含大量的图像处理函数。若要解决的计算挑战,最终大部分时间你会使用库中的多个函数。由于这一原因图...
阅读(2505) 评论(0)
    个人资料
    • 访问:507171次
    • 积分:5550
    • 等级:
    • 排名:第5575名
    • 原创:105篇
    • 转载:51篇
    • 译文:1篇
    • 评论:165条
    博客专栏
    最新评论