随笔分类 - OpenCV
eclipse中opencv配置
摘要:1.打开Eclipse,Window->preferences 2.进入preferences后,找到Java->Build Path->User Libraries,点击New 在弹出的对话框中填入名字 3.点击右侧 Add External JARs 找到D:\ProgramFiles\open
阅读全文
支持向量机SVM
摘要:支持向量机是一个类分类器,能够将不同的样本在样本空间分割的超平面。 给定一些标记好的样本,SVM输出一个最优化的分割平面。 支持向量机 1.支持向量机是一种监督式学习方法,可广泛的用于统计学习及线性回归,支持向量机 属于一般的线性分类器,这类分类器的特点是他们能够同时最小化经验误差与最大化 几何边缘
阅读全文
OpenCV图像分割2
摘要:1.GrubCut算法 2.K-means聚类算法 3.分水岭算法
阅读全文
OpenCV图像分割1
摘要:1.基于阈值 1.1原理 灰度阈值化,假设输入图像为f,输出图像为g,则阈值化公式如下: g(i,j)=1 当f(i,j)>=T g(i,j)=0 当f(i,j)<T 1.2适用范围 当各个物体之间不接触,且物体灰度和背景灰度之间差别比较明显时。 2.基于边缘 Sobel, Laplace 和 Ca
阅读全文
2.7 Sobel导数
摘要:OpenCV函数 Sobel(src_gray,grad_x/grad_y,ddepth,x_order,y_order,scale,delta,BORDER_DEFAULT ) Scharr( ) 边缘检测 为何要求导,如下图: 假设需要检测图中的边缘,可以看到在边缘像素值显著改变,灰度值跃升 利
阅读全文
2.6线性滤波器
摘要:filter2D() 卷积:在每一个图像块与某个算子(核)之间进行的运算。 核:固定大小的数值数组。该数组带有一个锚点,位于数组中央。 如何用核实现卷积 1.将核的锚点放在该特殊位置的像素上,同时,核内的其他值与该像素邻域的各像素重合。 2.将核内各值与相应像素值相乘,并将乘机相加。 3.将所得结果
阅读全文
2.5基本的阈值操作
摘要:阈值 函数 createTrackbar() 函数 threshold() 最简单的图像分割算法 应用举例:从一副图像中分离出我们需要的物体部分。这样的图像分割算法是基于图像中物体与 背景之间的灰度差异,而且,此分割属于像素级的分割。 为了从一副图像中提取出我们需要的部分,应该利用图像中每一个像素点
阅读全文
2.4图像金字塔
摘要:图像金字塔 图像金字塔是一系列图像的集合,所有图像来源于同一张原始图像,通过梯次向下采样获得, 直到到达某个终点时,停止采样。 有两种类型的图像金字塔经常出现: 高斯金字塔(Gaussian pyramid):用来向下采样。 拉普拉斯金字塔(Laplacin pyramid):用来从金字塔底层图像重
阅读全文
2.3更多形态学操作
摘要:开运算 通过先对图像腐蚀再膨胀 dst=open(src,element)=dilate( 闭运算 形态梯度 顶帽 黑帽
阅读全文
2.2腐蚀与膨胀
摘要:形态学操作 基于形状的一系列图像处理操作,通过将结构元素作用于输入图像来产生输出图像。 最基本的两种形态学操作:腐蚀(Erosion)与膨胀(Dilation) 应用:消除噪声 分割独立的图像元素,以连接相邻的元素 寻找图像中明显的极大值区域与极小值区域 以以下图片为例: 膨胀 将此图像A与任意形状
阅读全文
2.1 图像平滑处理
摘要:图像平滑处理: 是指用于突出图像的宽大区域、低频成分、主干部分或抑制图像噪声和高频干扰成分的图像 处理方法, 目的是使图像亮度平缓渐变,减小突变梯度,改善图像质量。 平滑处理时需要滤波器 归一化滤波器 最简单的滤波器,输出像素值是核窗口内像素值的均值。 blur(Mat src, Mat det,
阅读全文
1.5 改变图像的对比度和亮度
摘要:图像处理 点算子:对每个像素的操作不依赖它的邻域像素。 邻域算子:对每个像素的输出值依赖于其邻域像素。 像素变换 在这一类图像处理变换中,仅仅根据输入像素值(有时可加上某些全局信息或参数),计算相应输出像素值。 这类算子包括,亮度和对比度调整,以及颜色校正和变换。 亮度和对比度调整 两种常用的点算子
阅读全文
1.3矩阵的掩码操作
摘要:矩阵的掩码操作:根据掩码矩阵重新计算矩阵中每个像素的值。从数学观点看,利用自己设置的权值,对 像素邻域内的值做了加权平均。突出像素点,图片有了锐化的效果。 对图像的每个像素应用下列公式 I(i,j)=5*I(i,j)-I(i+1,j)-I(i,j+1)-I(i-1,j)-I(i,j-1)
阅读全文
Mat补充
摘要:Mat的创建 1.使用Mat的构造函数 Mat test(2,2,CV_8UC3,Scalar(0,0,255)); 2.使用Mat的构造函数 int sizes[3] = {2,2,2}; Mat test(3,sizes,CV_8UC3,Scalar::all(0)); 3.为已存在的IplIm
阅读全文
Opencv基本数据类型
摘要:1.OpenCV中数据类型和常用数据类型对应 Mat<uchar> CV_8U Mat<char> CV_8S Mar<short> CV_16S Mat<ushort> CV_16U Mat<int> CV_32S Mat<float> CV_32F Mat<double> CV_16F 2.
阅读全文
1.2OpenCV如何扫描图像,利用查找表和计时
摘要:查找表 颜色缩减法:如果矩阵元素存储的是单通道像素,使用C或C++的无符号字符类型,那么像素可有256个不同值。 但若是三通道图像,这种存储格式的颜色数就太多了(确切地说,有一千六百多万种)。用如此之多的颜色可能 会对我们的算法性能造成严重影响。其实有时候,仅用这些颜色的一小部分,就足以达到同样效果
阅读全文
读取,修改,保存图像
摘要:读取,修改,保存图像。 图像读取 imread 图像颜色空间的转换cvtColor 参数: 源图像 目标图像 附加参数,用于指定转换的类型 将图像保存至硬盘 imwrite
阅读全文
Opencv(3):基本数据类型
摘要:1.比较简单的原子类型 其中cvScalar是一个特殊例子,它有3个构造函数。第一个是cvScalar(),它需要一个,两个,三个或四个参数并将这些参数传递给数组val[]中的相应元素。 第二个函数是cvRealScalar(),它需要一个参数,它被传递给val[0],其他值被赋为0,第三个是cvS
阅读全文
OpenCV(2):视频
摘要:播放AVI视频 cvCreateFileCapture() 设置要读入的AVI文件,返回一个指向CvCapture结构的指针。这个结构包括了所有要读入AVI文件的信息。 在调用这个函数后,返回指针所指向的CvCpature结构被初始化到所对应的AVI文件的开头 frame=cvQueryFrame(
阅读全文
浙公网安备 33010602011771号