opencv-cvcanny的两个阈值的作用

因此我们可以总结以上实验的结果从而获得canny算子得实质:如果一个像素的梯度大与上限值,则被认为是边缘像素,如果小于下限阈值,则被抛弃,那么如果该店的梯度位于两者之间呢?则当其与高于上限值的像素点连接时我们才保留,否则删除。   这个解释得很清楚,以备自查 片段链接来自:http://zhuyuge0.blog.163.com/blog/static/13230361420116178512694/

Read more

opencv实现图片叠加透明度-尽管opencv不支持阿尔法通道

因为opencv不支持阿尔法通道(也有的说最新版本的其实是支持了的,在此我不做肯定),但要是两张图片去叠加的话,其实还是可以简单实现透明叠加的,这也是制作水印图片的方法。 比如,我们把图片B叠加到图片A上.透明的实际效果就是既能看到A的内容,又能看到B的内容. 终值 = Va*(1-rank/10)+Vb*(rank/10) ///下边是关键代码,有注释 //先说一下,pimg是大图(也可以理解为背景图),watermarkpic是水印图片(你的水印logo,或者文字),是IplImage格式指针 //注意数组的越界问题,水印图片要比pimg的小才行的。如果大了,就缩小一下就可以了 //把水印

Read more

opencv-膨胀算法cvDilate

先上定义: Dilate 使用任意结构元素膨胀图像 void cvDilate( const CvArr* src, CvArr* dst, IplConvKernel* element=NULL, int iterations=1 ); src 输入图像. dst 输出图像. element 用于膨胀的结构元素。若为 NULL, 则使用 3×3 长方形的结构元素 iterations 膨胀的次数 函数 cvDilate 对输入图像使用指定的结构元进行膨胀,该结构决定每个具有最小值象素点的邻域形状: dst=dilate(src,element): dst(x,y)=max((x’,y’) i

Read more

如何在vs2010中加载opencv2.4.4库-VC++

1.单击 项目 ,-〉你的工程名+属性-〉配置属性-〉VC++目录 在右侧显示的 常规中包含目录中 添加:你的opencv安装目录 \opencv2.4.4\opencv\build\include,你的opencv安装目录 \opencv2.4.4\opencv\build\include\opencv,你的opencv安装目录 \opencv2.4.4\opencv\build\include\opencv2,这三项 在库目录中添加 : 你的opencv安装目录opencv2.4.4\opencv\build\x86\vc10\lib 2在链接器-〉输入,右侧 附加依赖项 添加如下: op

Read more

opencv – cvHoughCircles找圆例子

先来看opencv函数 cvHoughCircles 的说明: 函数:CvSeq *cvHoughCircles(CvArr *image,void *circle_storage,int method,double dp,double min_dist,double param1,double param2,int min_radius,int max_radius) 下边是参数说明: image:输入8bit(灰度)图像,其内容可被函数所改变 circle_storage:检测到的圆存储仓,可以是内存存储仓 (此种情况下,一个线段序列在存储仓中被创建,并且由函数返回)或者是包含圆参数的特殊

Read more

opencv之cvThreshold说明

cvThreshold cvThreshold是opencv库中的一个函数 作用:函数 cvThreshold 对单通道数组应用固定阈值操作。该函数的典型应用是对灰度图像进行阈值操作得到二值图像。(cvCmpS 也可以达到此目的) 或者是去掉噪声,例如过滤很小或很大象素值的图像点。本函数支持的对图像取阈值的方法由 threshold_type 确定。 形式:void cvThreshold( const CvArr* src, CvArr* dst, double threshold, double max_value, int threshold_type ); src:原始数组 (单通道

Read more

opencv 2.0 之 Mat

Mat是opencv2.0推出的处理图像的新的数据结构,现在越来越有趋势取代之前的cvMat和lplImage,相比之下Mat最大的好处就是能够更加方便的进行内存管理,不再需要程序员手动管理内存的释放。opencv2.3中提到Mat是一个多维的密集数据数组,可以用来处理向量和矩阵、图像、直方图等等常见的多维数据。 class CV_EXPORTS Mat { public: int flags;(Note :目前还不知道flags做什么用的) int dims;  int rows,cols;  uchar *data;  int * refcount;  … };

Read more

opencv1.x 版本和新版本 2.X.x的一些大的区别

opencv1.x 版本和新版本 2.X.x的一些大的区别: 1. 首先,新的版本几乎完全向下兼容,变化主要体现现在: a. 增加新的/优化的算法实现。(不多,因为图像处理经典的算法就那么多) b. 对多语言/平台的支持,比如python, c++,android。这与现在的商业应用有关。 c. 文件命名规则发生了一些变化,比如现在的库统一为opencv_xxxxx.lib,加了前缀。(仅举例,可能还有别的) d. 数据结构发生了变化。2.0以后,提倡使用Mat 结构,来代替以前的IplImage,Array。结构跟易于使用。(仅举例,可能还有别的) e. 目录结构发生了变化,opencv o

Read more