关闭
当前搜索:

图像局部与分割(一)

OpenCV中的采样函数cvInitLineIterator()和CV_NEXT_LINE_POINT(),可以很容易对任意直线上的像素进行采样。 CVAPI(int)  cvInitLineIterator( const CvArr* image, CvPoint pt1, CvPoint pt2,                                 CvLine...
阅读(55) 评论(0)

《学习OpenCV》第八章轮廓课后题

画一个圆,求轮廓,并用矩形逼近,求周长 #include #include #include using namespace std; using namespace cv; #define CVX_RED CV_RGB(0xff, 0x00, 0x00) #define CVX_GREEN CV_RGB(0x00, 0xff, 0x00) #define CVX_BLUE ...
阅读(56) 评论(0)

《学习OpenCV》第八章轮廓课后题8.3

用CvSeq的函数创建圆和矩形,这两个图像用点序列来表示。 有关序列的读写方法可以自行学习,这里只给出一个示例 #include #include #include using namespace std; using namespace cv; #define CVX_RED CV_RGB(0xff, 0x00, 0x00) #define CVX_GREEN CV_RGB(0...
阅读(70) 评论(0)

OpenCv - 轮廓练习二(8.1)

OpenCV3 中cvFindDominantPoints 这个函数用什么替代了? 题目:用keynote画了一个图片,然后灰度化、二值化、查找轮廓,描述轮廓,最后查看关键点。 #include #include #include using namespace std; using namespace cv; #define CVX_RED CV_RGB(0xff, 0x00,...
阅读(68) 评论(0)

OpenCV - 轮廓练习一

我们检测输入图像的轮廓,然后追个绘制每个轮廓。 #include #include #include #include using namespace std; using namespace cv; #define CVX_RED CV_RGB(0xff, 0x00, 0x00) #define CVX_GREEN CV_RGB(0x00, 0xff, 0x00) #defin...
阅读(40) 评论(0)

OpenCV-轮廓

Canny边缘检测算法可以根据像素间的差异检测出轮廓边界的像素,但是并没有将轮廓作为一个整体。 利用cvFindContours()可以实现把边缘像素组装成轮廓。 有关内存和序列的知识比较多和复杂,就不在这里详细阐述了。 下面先给出一个轮廓的例子: 给出一个窗口用于显示图像,滑动条(trackbar)用于设置阈值,然后对采二值化后的图像提取轮廓并绘制。控制参数的滑动条变化,更新图像。 #...
阅读(42) 评论(0)

《学习OpenCV》第七章直方图(练习7.2)

给定三幅在书中讨论的不同光照条件下的手图像,利用cvCalcHist()来获得室内拍照的手的色肤直方图 分别给定2维、8维、16维、32维、256维进行运算 #include #include #include using namespace std; using namespace cv; #define cvQueryHistValue_1D( hist, idx0 )...
阅读(43) 评论(0)

《学习OpenCV》第七章直方图(练习7.1)

《学习OpenCV》第七章课后题一 7.1 在0-1之间生成1000个随机值ri,定义一个bin的大小,并且建立一个直方图几1/ri。 在每一个bin中元素数是否相同(正负差值在10内即可) #include #include #include using namespace std; using namespace cv; #define cvQueryHistValue_1D(...
阅读(61) 评论(0)

直方图原理和应用

概念:在分析图像、物体、视频信息的过程中,我们常常把眼中的看到的物体用直方图(histogram)表示。 应用:直方图可以用来描述各种不同的事情,如物体的彩色分布、物体边缘梯度模板、以及表示物体目标位置的当前假设的概率分布。 直方图可以用来进行快速姿态识别、检测视频中的场景变换。 原理:直方图就是对数据进行统计,将统计值组织到一系列实现定义好的bin中。bin中的数值是从数据中计算出的特征的...
阅读(76) 评论(0)

直方图均衡化

直方图均衡化最广泛的应用是尝试扩大图像的动态范围。 直方图均衡化后面潜在的数学原理是一个分布(输入的亮度直方图)被映射到另一个分布(一个更宽,理想统一的亮度值分布)。 void cvEqualizeHist(const CvArr * src , CvArr * dst) 该函数能归一化图像亮度和增强对比度; src  输入的 8-比特 单信道图像  dst  输...
阅读(43) 评论(0)

积分图像

OpenCV可以轻松计算积分图像,只要用一个具有相应名称cvIntegral()的函数。 积分图是一个数据结构,可以实现子区域的快速求和。其中在人脸识别及相关算法中应用的Haar小波拥有显著应用。 积分图像简单来说就是(x,y)点的积分像素时(0,x)和(0,y)的求和。 void cvIntegral(const CvArr * image , CvArr * sum , CvArr *...
阅读(68) 评论(0)

LogPolar 坐标变换

对于二维图像,Log-Polar表示从笛卡尔坐标到极坐标的变换。 OpenCV中对于数极坐标转换的函数是cvLogPolar(): void cvLogPolar(const CvArr * src , CvArr * det , CvPoint2D32f center , double n , int flags = CV_INTER_LINEAR | CV_WARP_FILL_OUTLIE...
阅读(71) 评论(0)

霍夫变换(直线和圆)

霍夫变换是一种在图像中寻找直线和圆及其它简单形状的方法。 霍夫线变换原理:二值图像中的任何点都可能是一些直线集合的一部分,例如在原始图像上的一条直线表示为y = ax + b ,这是原始图像上以x和y为坐标系进行表示的,但是如果我们以a和b为新的变量坐标,那么在新的图像中,某一个点代表了所有过原始图像上点的直线。 CvSeq * cvHoughLines2 (CvArr * image, vo...
阅读(57) 评论(0)

Canny算子

在Canny边缘检测法中,首先是在x和y方向求一阶导数,然后组合为4个方向的导数。这些方向导数达到局部最大值的点就是组成边缘的候选点。 Canny算法中最重要的一个新特点就是其试图将独立边缘的候选像素拼装成轮廓。轮廓的形成是对这些像素运用滞后性阈值。这意味着有两个阈值,上限和下限。 如果一个像素的梯度大于上限阈值,则被认为是边缘像素,如果低于下限阈值,则被抛弃,如果介于二者之间,只有当其与高于...
阅读(38) 评论(0)

拉普拉斯变换

void cvLaplace(const CvArr * src,CvArr * det , int  apertureSize=3) 该函数通常把原图像和目标图像以及中孔大小作为变量。 原图像可以是8位(无符号)图像,也可以是32位(浮点)图像。而目标图像必须是16位(有符号)或者32位(浮点)图像。 这里的中孔与Sobel导数中出现的中孔完全一样。 拉普拉斯算子通常可用于各种情况。一个...
阅读(87) 评论(0)

图像的梯度和幅值

图像的梯度:梯度的方向是函数f(x,y)变化最快的方向,当图像中存在边缘时,一定有较大的梯度值,相反,当图像中有比较平滑的部分时,灰度值变化较小,则相应的梯度也较小,图像处理中把梯度的模简称为梯度,由图像梯度构成的图像成为梯度图像。 练习《学习OpenCV》第六章第五题: 创建一幅新图像,其中只有45度直线,背景为黑,直线为白。给出一系列中孔尺寸,我们将要得到图像的一阶x方向导数(dx)和一阶...
阅读(316) 评论(0)

Sobel函数原理和应用

用来表达微分的最常用的操作是Sobel微分算子。Sobel算子包含任意阶的微分以及融合偏导。 http://blog.csdn.net/tonyshengtan/article/details/43698711 这个帖关于Sobel的卷积算子怎么推导的有很详细的介绍; 下面我们看一下函数原型 CVAPI(void) cvSobel( const CvArr* src, CvArr* ds...
阅读(51) 评论(0)

cvFilter2D了解和使用

cvFilter2D()函数接口void cvFilter2D(  const CvArr* src,  CvArr* dst, const CvMat* kernel, CvPoint anchor=cvPoint(-1,-1) );  src 代表:输入图像 dst 代表:输出图像 kernel代表: 卷积核, 单通道浮点矩阵。 如果想要应用不同的核于不同的通道,先用 cvSplit...
阅读(66) 评论(0)

OpenCV 阈值化操作cvThreshold 和 自适应阈值cvAdaptiveThreshold操作

载入一幅图片,使用cvThreshold函数对其进行操作,设置阈值为128。 使用自适应阈值进行同样操作 #include #include #include #include using namespace std; using namespace cv; int main(int argc, const char * argv[]) { /*1.载入图像*/ ...
阅读(84) 评论(0)

OpenCV 中Resize 和 cvPydown的使用

载入一幅图像分别使用cvResize() 和 cvPyrDown()进行图片的三次缩放,比较结果; #include #include #include #include #include #include using namespace std; using namespace cv; IplImage * doPryDown(IplImage * in,int filter=...
阅读(82) 评论(0)
181条 共10页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:22885次
    • 积分:1870
    • 等级:
    • 排名:千里之外
    • 原创:170篇
    • 转载:8篇
    • 译文:3篇
    • 评论:0条