资源简介
基于OpenCV自己实现的高斯滤波,Sobel边缘检测,3通道图像分离,彩色图转灰度图,高斯滤波比OpenCV自带的GaussBlur要慢,仅作为理解原理学习之用。工程建议尽量用用OpenCV自带的函数。
代码片段和文件信息
#include
#include
using namespace std;
using namespace cv;
void GaussianSmooth(const Mat&srcMat &dstdouble sigma)
{
sigma=sigma>0?sigma:0;
int ksize=cvRound(3*sigma)*2+1;//保证ksize是奇数
assert((ksize&1)==1);
if(ksize==1)
{
dst=src.clone();
return;
}
dst.create(src.size()src.type());
Mat tmp;
tmp.create(src.size()src.type());
double *kernel=new double[ksize];
double pscale=-1.0/(2*sigma*sigma);
double c=1.0/(sigma*sqrt(2*CV_PI));
double sum=0;
int kcenter=ksize/2;
int ijk;
for(i=0;i {
int x=i-kcenter;
kernel[i]=c*exp(pscale*x*x);
sum+=kernel[i];
}
for(i=0;i kernel[i]/=sum;
//进行x方向上的高斯模糊
for(i=0;i {
const uchar *pSrc
- 上一篇:K均值算法C语言
- 下一篇:用分治算法设计循环赛日程表
相关资源
- Opencv + c++实现简单的小波变换
- SLIC超像素分割算法OpenCV Mat 接口
- FLICM算法C_Opencv代码,,可用于做图像
- 区域分裂合并
- 基于OpenCV最近邻插值算法
- opencv+zed测距
- opencv3.0批量校正图片
- 利用opencv编写的人脸识别
- 多波段融合/拉普拉斯金字塔融合Ope
- 基于opencv的彩色图像分解为hsv单通道
- Opencv实现区域增长法,K均值聚类,模
- Otsu双阈值分割opencv
- opencv RGB转换成HSV并且从R G B H S V三个
- 基于Retinex的图像增强算法-Opencv-C++
- opencv静态库 可直接拷贝到lib目录下使
- KCF源码的输入图片序列的图片名称i
- OpenCV实现的运动物体的跟踪与识别手
- 几种简单的滤镜实现交叉,怀旧,光
- 基于c+++Opencv的图像边缘提取及拟合
- 人脸识别svm+pcaopencv3
- c++图像卷积操作
- Irls算法-权值最小二乘算法C++opencv2.
- OpenCV手势识别-手掌特征提取
- opencv人脸识别c++实现
- MFC+OpenCV细胞自动计数系统
- halcon+opencv相机标定
- 利用opencv批量更改图片尺寸
- opencv c++ mse和psnr
- 山东大学数字图像处理实验1-3
- 人脸识别源代码
评论
共有 条评论