图像处理
lingtianyulong
这个作者很懒,什么都没留下…
展开
-
圆拟合算法
圆拟合算法文章目录圆拟合算法最小二乘法拟合(least square fitting)代数拟合 (algebraic fitting)Kåsa FitPratt Fit算法分析Taubin Fit迭代重加权最小二乘法(IRLS, iteratively reweighted least-squares)迭代加权最小二乘法在图形拟合中的应用削波因数的计算Huber 函数M 估计M 估计的发展M 估...原创 2020-03-21 19:12:51 · 19916 阅读 · 9 评论 -
灰度共生矩阵及特征提取—OpenCV
因为OpenCV中自带的灰度共生矩阵的计算使用过程中,经常出现问题;之前在项目中使用了别人基于OpenCV重新编写cl_texture的灰度共生矩阵,但该代码只能在MFC环境下使用,且不能释放内存;现有的网上流行的基于OpenCV的灰度共生矩阵的计算,都是基于C++接口实现的;因为,本人使用的是OpenCV的C接口,所以,在结合前人的代码的基础上,实现了基于OpenCV的C接口的灰度共生矩阵的计算原创 2016-11-04 10:06:11 · 15538 阅读 · 6 评论 -
图像通用特征的提取
主要包含了图像的灰度直方图、灰度图像的信息熵、圆形度……等35个图像通用特征的提取;Character.h#include #include #include #include #include using namespace std;// 存储目标物体的椭圆结构特征typedef struct _FitEllipse{ float e; // 离心率 float原创 2016-10-26 13:36:24 · 1925 阅读 · 0 评论 -
基于OpenCV的LBP算法(OpenCV1.0版本)
#include #include #include using namespace std;using namespace cv;//基于旧版本的opencv的LBP算法opencv1.0 // 3 x 3 矩阵如下所示// [ 1, 2, 3]// [ 8, ij,4]// [ 7, 6, 5]void LBP(IplImage *src, IplImage *dst)原创 2016-11-21 21:29:31 · 782 阅读 · 0 评论 -
基于 OpenCV 的 LBP + SVM 人脸识别
本文中对人脸的LBP特征的提取,采用了LBP的圆形算子,通过对ORL92112人脸库中的样本进行识别,据统计,训练集与测试集的准确率均达到了100%;经LBP处理后的图像如下图所示:如上图所示,左侧图像为原图像,右侧图像为提取出的LBP图像;利用LBP圆形算子,可以非常清晰描述出人脸特征;故,可以利用LBP算子对人脸特征进行提取并识别,而且在处理过程中,不受图像的光照、旋转、角度等原创 2016-11-27 16:35:37 · 11538 阅读 · 5 评论 -
Halcon 提取ROI区域
因reduce_domain提取的图像的大小与原图像大小保持一致,虽然可以结合crop_domain一起使用,去掉没有用到的区域;但因reduce_domain提取的图像与实际所要的区域有一定区别(注:本人测试过程中,虽然提取的是原图像(三通道图像),但提取出的图像与原图像有一定的区别(提取出的图像与region图像相同,而不是原图像))所以,可使用 crop_rectangle1对图像原创 2017-09-09 21:33:18 · 18962 阅读 · 1 评论 -
基于 LBP + SVM 胡萝卜开裂检测算法
胡萝卜开裂检测算法l LBP+SVM 算法:1. 算法描述:LBP+SVM对胡萝卜开裂检测算法的主要思想是,首先,利用LBP对开裂胡萝卜与非开裂胡萝卜进行特征提取,将提取的特征利用svm对提取的特征进行训练和识别;2. 算法步骤描述:1) 首先,对胡萝卜进行预处理,主要通过加权的方式对胡萝卜的背景进行去除;当RGB三个通道的加权系数分别为2原创 2016-12-01 13:59:22 · 3735 阅读 · 1 评论 -
vs2017写opencv程序时经常卡死
最近在写opencv的程序时,vs经常性卡死崩溃,只能结束进程,之前以为是vs的安装问题,卡死也不是那么频繁,就没在意,今天的vs简直不能用了,上网查了一下,一位大神解释了原因。写程序的时候,你会发现鼠标一放到Mat上面就卡死,原因可能VS的InteliSense预览过多的信息时有BUG,而Mat类上面有192行注释。解决方案是使用方向键把光标移动到Mat上,F12转到定义,在Mat和注释之间加个...转载 2018-07-15 15:31:46 · 1164 阅读 · 3 评论 -
python opencv 实现图像白平衡
import cv2 as cv# import numpy as np# 读取图像img = cv.imread(r'F:\images\11.jpg')r, g, b = cv.split(img)r_avg = cv.mean(r)[0]g_avg = cv.mean(g)[0]b_avg = cv.mean(b)[0]# 求各个通道所占增益k = (r_avg + ...原创 2019-05-28 10:57:06 · 4685 阅读 · 2 评论 -
opencv轮廓提取与轮廓拟合
#include #include #include #include #include using namespace std;using namespace cv;int main(){ // Read input binary image Mat image= imread("./binaryGroup.bmp",0); if (!image.data) r转载 2015-09-03 19:59:48 · 9093 阅读 · 0 评论 -
机器学习中的相似性度量
在做分类时常常需要估算不同样本之间的相似性度量(Similarity Measurement),这时通常采用的方法就是计算样本间的“距离”(Distance)。采用什么样的方法计算距离是很讲究,甚至关系到分类的正确与否。 本文的目的就是对常用的相似性度量作一个总结。本文目录:1. 欧氏距离2. 曼哈顿距离3. 切比雪夫距离4. 闵可夫斯基距离5. 标准化欧氏距转载 2014-06-30 08:22:26 · 608 阅读 · 0 评论 -
图像的几何不变矩
矩特征主要表征了图像区域的几何特征,又称为几何矩, 由于其具有旋转、平移、尺度等特性的不变特征,所以又称其为不变矩。在图像处理中,几何不变矩可以作为一个重要的特征来表示物体,可以据此特征来对图像进行分类等操作。 1.HU矩 几何矩是由Hu(Visual pattern recognition by moment invariants)在1962年提出的,图像f(x,y)的(p+q)阶转载 2015-02-03 23:14:59 · 712 阅读 · 0 评论 -
基于K-MEANS聚类的胡萝卜纯色背景去除方法
所谓的聚类是指,将一个数据集中的某些方面相似的数据成员进行分类的过程,聚类就是一种发现这种内在结构的技术,聚类技术经常被称为无监督学习。k均值聚类是最著名的划分聚类算法,由于简洁和效率使得他成为所有聚类算法中最广泛使用的。给定一个数据点集合和需要的聚类数目k,k由用户指定,k均值算法根据某个距离函数反复把数据分入k个聚类中。k均值算法描述先随机选取K个对象作为初始的聚类中心原创 2015-01-17 16:22:56 · 2013 阅读 · 0 评论 -
OpenCV 中使用PCA
对于PCA,一直都是有个概念,没有实际使用过,今天终于实际使用了一把,发现PCA还是挺神奇的。在OPENCV中使用PCA非常简单,只要几条语句就可以了。1、初始化数据//每一行表示一个样本CvMat* pData = cvCreateMat( 总的样本数, 每个样本的维数, CV_32FC1 );CvMat* pMean = cvCrea转载 2014-12-30 23:03:39 · 2100 阅读 · 0 评论 -
关于图像特征提取
网上发现一篇不错的文章,是关于图像特征提取的,给自己做的项目有点类似,发出来供大家参考。 特征提取是计算机视觉和图像处理中的一个概念。它指的是使用计算机提取图像信息,决定每个图像的点是否属于一个图像特征。特征提取的结果是把图像上的点分为不同的子集,这些子集往往属于孤立的点、连续的曲线或者连续的区域。 特征的定义 至今为止特征没有万能和精确的定义。转载 2015-01-03 21:33:51 · 1350 阅读 · 1 评论 -
十三种基于直方图的图像全局二值化算法原理、实现、代码及效果
图像二值化的目的是最大限度的将图象中感兴趣的部分保留下来,在很多情况下,也是进行图像分析、特征提取与模式识别之前的必要的图像预处理过程。这个看似简单的问题,在过去的四十年里受到国内外学者的广泛关注,产生了数以百计的阈值选取方法,但如同其他图像分割算法一样,没有一个现有方法对各种各样的图像都能得到令人满意的结果。 在这些庞大的分类方法中,基于直方图的全局二值算法占有了绝对的市场份额,转载 2015-01-22 16:55:17 · 1788 阅读 · 0 评论 -
基于OpenCV的小波变换
提供函数DWT()和IDWT(),前者完成任意层次的小波变换,后者完成任意层次的小波逆变换。输入图像要求必须是单通道浮点图像,对图像大小也有要求(1层变换:w,h必须是2的倍数;2层变换:w,h必须是4的倍数;3层变换:w,h必须是8的倍数......),变换后的结果直接保存在输入图像中。1、函数参数简单,图像指针pImage和变换层数nLayer。2、一个函数直接完成多层次二维小波变换,转载 2015-03-06 21:37:11 · 1771 阅读 · 0 评论 -
基于OpenCV的傅里叶变换及逆变换
#include #include #include #include //傅里叶正变换void fft2(IplImage *src, IplImage *dst){ //实部、虚部 IplImage *image_Re = 0, *image_Im = 0, *Fourier = 0; // int i, j; image_Re = cvCrea转载 2015-07-20 09:35:23 · 4691 阅读 · 1 评论 -
Hough变换(openCV的cvHoughLines2)
cvHoughLines2功能:利用Hough变换在二值图像中寻找直线。函数原型: CvSeq* cvHonghLines2(CvArr* image,void* line_storage,int mehtod,double rho,double theta,int threshold,double param1 =0,double param2 =0)转载 2014-06-04 09:55:18 · 710 阅读 · 0 评论