精华内容
下载资源
问答
  • 高斯差分滤波
    2021-12-04 20:02:46

    高斯滤波器可提取图像的低频成分。我们知道高斯滤波器过滤的频率范围取决于参数 σ 的值,这个参数控制了滤波器的宽度。现在用两个不同带宽的高斯滤波器对一幅图像做滤波,然后将这两个结果相减,就能得到由较高的频率构成的图像。这些频率被一个滤波器保留,被另一个滤波器丢弃。这种运算称为高斯差分(Difference of Gaussians,DoG),代码如下所示:

    cv::GaussianBlur(image,gauss20,cv::Size(),2.0); 
    cv::GaussianBlur(image,gauss22,cv::Size(),2.2); 
    // 计算高斯差分
    cv::subtract(gauss22, gauss20, dog, cv::Mat(), CV_32F); 
    // 计算 DoG 的过零点
    zeros= laplacian.getZeroCrossings(dog);
    
    更多相关内容
  • 高斯差分滤波结果 原图像 高斯差分滤波结果 Show me the code #include <iostream> #include <string> #include <opencv2/imgproc/imgproc.hpp> #include <opencv2/highgui.hpp> using ...

    高斯差分滤波结果

    原图像
    在这里插入图片描述
    高斯差分滤波结果
    在这里插入图片描述

    Show me the code

    #include <iostream>
    #include <string>
    #include <opencv2/imgproc/imgproc.hpp>
    #include <opencv2/highgui.hpp>
    
    using namespace std;
    
    int main() {
        // 图像路径
        const string fileName = "xxx.jpg";
        
        // 读取图像
        cv::Mat origin = cv::imread(fileName);
        
        // 创建差分存放结果及中间图像空间
        cv::Mat pro1, pro2, result;
        
        // 设置两次高斯滤波的sigma
        const float sigma1 = 1.6;
        const float sigma2 = 2.0;
        
        // 两次不同sigma高斯滤波
        cv::GaussianBlur(origin,
                         pro1,
                         cv::Size(0, 0),
                         sigma1);
        
        cv::GaussianBlur(origin,
                         pro2,
                         cv::Size(0, 0),
                         sigma2);
        
        // 高斯滤波结果差分
        result = pro1 - pro2;
        
        // 显示图像
        cv::imshow("Origin", origin);
        cv::imshow("Result", result * 255);
        
        cv::waitKey(0);
    }
    
    
    展开全文
  • 其中L_FaceImg_gmma是经过伽马光线校正之后的图像,分别作滤波,之后差分相减,就得到高斯差分滤波的结果了……囧。明天去pudn上查查代码,看看是不是这样写的…… 下面是fspecial函数的使用样例,写上来原因是蛮...

    自己调研之后,写的伽马校正:

    TestImgNum =1 ;00 335

    str = strcat('.\',num2str(TestImgNum),'.bmp');

    L_FaceImg = imread(str);

    figure,imshow(uint8(L_FaceImg));

    temp = double(L_FaceImg);

    temp = temp./256;

    gamma = 1/2.2;

    y = imadjust(temp,[0; 1],[0; 1],gamma)

    % y=gamma(temp);%实现gamma校正

    % y = gamma_filter(temp,gamma);

    y = y.*256;

    figure,imshow(uint8(y));

    原理不明,只是会用而已。具体过程就是归一化人脸图像到[0,1]之间之后,运用imadjust函数,将其根据伽马值gamma转换到另一个范围在[0,1]的空间中去,然后乘以255加以倍数,输出即得伽马校正的结果。

    xb调研完之后,写的代码:

    L_FaceImg=double(L_FaceImg_org);

    %L_FaceImg=L_FaceImg.^0.2;

    gama=2;

    p=255/255^(gama);p=(1/p)^(1/gama);

    for i=1:imrow

    for

    j=1:imcol

    %for l=1:k

    % r(i,j,l)=floor(p*double(I(i,j,l))^(1/gama));

    L_FaceImg_gmma(i,j)=floor(p*L_FaceImg(i,j)^(1/gama));

    %end

    end

    end

    完全是原理性的东西。

    高斯查分滤波,在网上查DoG查了好久,最后终于终于在pudn上面找到相关c代码,结果被xb两句话解决了……具体见下面:

    low=

    imfilter(L_FaceImg_gmma,fspecial('gaussian',7,1),'same','replicate');

    lowlow=imfilter(L_FaceImg_gmma,fspecial('gaussian',9,2),'same','replicate');

    Resimage=low-lowlow;

    其中L_FaceImg_gmma是经过伽马光线校正之后的图像,分别作滤波,之后差分相减,就得到高斯差分滤波的结果了……囧。明天去pudn上查查代码,看看是不是这样写的……

    下面是fspecial函数的使用样例,写上来原因是蛮喜欢subplot函数,哇咔咔~

    I = imread('cameraman.tif');

    subplot(2,2,1);imshow(I);title('Original Image');

    H = fspecial('motion',20,45);

    MotionBlur = imfilter(I,H,'replicate');%replicate表示Input array

    values outside the bounds of the array are

    assumed to equal the nearest array border value

    输入值自动对齐到最近邻

    subplot(2,2,2);imshow(MotionBlur);title('Motion Blurred

    Image');

    H = fspecial('disk',10);

    blurred = imfilter(I,H,'replicate');

    subplot(2,2,3);imshow(blurred);title('Blurred Image');

    H = fspecial('unsharp');

    sharpened = imfilter(I,H,'replicate');

    subplot(2,2,4);imshow(sharpened);title('Sharpened Image');

    对比均衡化还没搞明白,先把代码贴出来,供慢慢研究……

    %Contrast Equalization.

    a=0.1;

    for i=1:imrow

    for j=1:imcol

    Resimage_temp(i,j)=(abs(Resimage(i,j)))^a; end

    end

    mu=mean(mean(Resimage_temp));

    Resimage=Resimage./(mu^(1/a));

    tt=10;

    for i=1:imrow

    for j=1:imcol

    Resimage_temp(i,j)=min(tt,(abs(Resimage(i,j)))^a); end

    end

    mu=mean(mean(Resimage_temp));

    Resimage=Resimage./(mu^(1/a));

    Resimage=tt*tanh(Resimage/tt);

    Resimage_max=max(max(Resimage));

    Resimage_min=min(min(Resimage));

    for i=1:imrow

    for j=1:imcol

    Resimage(i,j)=(Resimage(i,j)-Resimage_min)/(Resimage_max-Resimage_min)*255; end

    end

    % imshow(uint8(Resimage));

    %提取LBP模板

    % [result , Lbpface] = lbp(L_FaceImg);

    %figure,imshow(uint8(Lbpface));

    L_FaceImg_bandpass=uint8(Resimage);

    TestImage

    = strcat('.\M00模糊脸_bandpass\',num2str(ii),'.bmp');

    imwrite(uint8(L_FaceImg_bandpass),TestImage,'bmp');

    % figure,imshow(uint8(blurred));

    end

    晕死,就俩公式:a4c26d1e5885305701be709a3d33442f.png

    其中a = 0.1,t= 10.看着挺简单,我咋就做不出来呢?

    真是的啊我

    展开全文
  • 自己调研之后,写的伽马校正:TestImgNum =1;00 335str = strcat('.\',num2str(TestImgNum),'.bmp');L_FaceImg = imread(str);figure,imshow(uint8(L_FaceImg));temp = double(L_FaceImg);temp = temp./256;...

    自己调研之后,写的伽马校正:

    TestImgNum =1 ;00 335

    str = strcat('.\',num2str(TestImgNum),'.bmp');

    L_FaceImg = imread(str);

    figure,imshow(uint8(L_FaceImg));

    temp = double(L_FaceImg);

    temp = temp./256;

    gamma = 1/2.2;

    y = imadjust(temp,[0; 1],[0; 1],gamma)

    % y=gamma(temp);%实现gamma校正

    % y = gamma_filter(temp,gamma);

    y = y.*256;

    figure,imshow(uint8(y));

    原理不明,只是会用而已。具体过程就是归一化人脸图像到[0,1]之间之后,运用imadjust函数,将其根据伽马值gamma转换到另一个范围在[0,1]的空间中去,然后乘以255加以倍数,输出即得伽马校正的结果。

    xb调研完之后,写的代码:

    L_FaceImg=double(L_FaceImg_org);

    %L_FaceImg=L_FaceImg.^0.2;

    gama=2;

    p=255/255^(gama);p=(1/p)^(1/gama);

    for i=1:imrow

    for

    j=1:imcol

    %for l=1:k

    % r(i,j,l)=floor(p*double(I(i,j,l))^(1/gama));

    L_FaceImg_gmma(i,j)=floor(p*L_FaceImg(i,j)^(1/gama));

    %end

    end

    end

    完全是原理性的东西。

    高斯查分滤波,在网上查DoG查了好久,最后终于终于在pudn上面找到相关c代码,结果被xb两句话解决了……具体见下面:

    low=

    imfilter(L_FaceImg_gmma,fspecial('gaussian',7,1),'same','replicate');

    lowlow=imfilter(L_FaceImg_gmma,fspecial('gaussian',9,2),'same','replicate');

    Resimage=low-lowlow;

    其中L_FaceImg_gmma是经过伽马光线校正之后的图像,分别作滤波,之后差分相减,就得到高斯差分滤波的结果了……囧。明天去pudn上查查代码,看看是不是这样写的……

    下面是fspecial函数的使用样例,写上来原因是蛮喜欢subplot函数,哇咔咔~

    I = imread('cameraman.tif');

    subplot(2,2,1);imshow(I);title('Original Image');

    H = fspecial('motion',20,45);

    MotionBlur = imfilter(I,H,'replicate');%replicate表示Input array

    values outside the bounds of the array are

    assumed to equal the nearest array border value

    输入值自动对齐到最近邻

    subplot(2,2,2);imshow(MotionBlur);title('Motion Blurred

    Image');

    H = fspecial('disk',10);

    blurred = imfilter(I,H,'replicate');

    subplot(2,2,3);imshow(blurred);title('Blurred Image');

    H = fspecial('unsharp');

    sharpened = imfilter(I,H,'replicate');

    subplot(2,2,4);imshow(sharpened);title('Sharpened Image');

    对比均衡化还没搞明白,先把代码贴出来,供慢慢研究……

    %Contrast Equalization.

    a=0.1;

    for i=1:imrow

    for j=1:imcol

    Resimage_temp(i,j)=(abs(Resimage(i,j)))^a; end

    end

    mu=mean(mean(Resimage_temp));

    Resimage=Resimage./(mu^(1/a));

    tt=10;

    for i=1:imrow

    for j=1:imcol

    Resimage_temp(i,j)=min(tt,(abs(Resimage(i,j)))^a); end

    end

    mu=mean(mean(Resimage_temp));

    Resimage=Resimage./(mu^(1/a));

    Resimage=tt*tanh(Resimage/tt);

    Resimage_max=max(max(Resimage));

    Resimage_min=min(min(Resimage));

    for i=1:imrow

    for j=1:imcol

    Resimage(i,j)=(Resimage(i,j)-Resimage_min)/(Resimage_max-Resimage_min)*255; end

    end

    % imshow(uint8(Resimage));

    %提取LBP模板

    % [result , Lbpface] = lbp(L_FaceImg);

    %figure,imshow(uint8(Lbpface));

    L_FaceImg_bandpass=uint8(Resimage);

    TestImage

    = strcat('.\M00模糊脸_bandpass\',num2str(ii),'.bmp');

    imwrite(uint8(L_FaceImg_bandpass),TestImage,'bmp');

    % figure,imshow(uint8(blurred));

    end

    晕死,就俩公式:a4c26d1e5885305701be709a3d33442f.png

    其中a = 0.1,t= 10.看着挺简单,我咋就做不出来呢?

    真是的啊我

    展开全文
  • 高斯平滑滤波器

    2021-04-24 00:11:02
    高斯平滑滤波器SYxxxxxxx XX一、实验名称:实现高斯平滑滤波器选择几个不同的 ( 至少5个)对一幅图像进行滤波,观测不同的值对图像的平滑程度(注意 取值与窗函数大小的关系)。并说明如何为一幅图像选择合适的 值。二...
  • 双边滤波器、高斯滤波 双边滤波(Bilateral filter)是一种非线性的滤波方法,是结合图像的空间邻近度和像素值相似度的一种折衷处理,同时考虑空域信息和灰度相似性,达到保边去噪的目的。普通的高斯滤波会将图像的...
  • 其中L_FaceImg_gmma是经过伽马光线校正之后的图像,分别作滤波,之后差分相减,就得到高斯差分滤波的结果了……囧。明天去pudn上查查代码,看看是不是这样写的…… 下面是fspecial函数的使用样例,写上来原因是...
  • 高斯滤波简介,高斯滤波性质及应用

    千次阅读 2021-05-24 06:53:24
    1、高斯滤波简介了解高斯滤波之前,我们首先熟悉一下高斯噪声。高斯噪声是指它的概率密度函数服从高斯分布(即正态分布)的一类噪声。如果一个噪声,它的幅度分布服从高斯分布,而它的功率谱密度又是均匀分布的,则称...
  • 高斯滤波实际上是用我们生成的高斯滤波核在图片上做的一个空间卷积,根据滤波核的不同达到我们不同的处理效果,重点是要理解高斯核怎么生成,以及高斯函数的特点。 接下来用代码解释下滤波核是
  • 同时,为了克服标准PF存在粒子枯竭、导致估计结果可能收敛到错误值的问题,提出了基于差分进化改进粒子滤波(DEPF)的多径估计算法,该算法利用差分进化(DE)算法代替PF的重采样来产生新粒子,使新粒子朝着状态真实后验概率...
  • 高斯滤波与双边滤波

    千次阅读 2019-09-23 17:42:59
    双边滤波器、高斯滤波 双边滤波(Bilateral filter)是一种非线性的滤波方法,是结合图像的空间邻近度和像素值相似度的一种折衷处理,同时考虑空域信息和灰度相似性,达到保边去噪的目的。普通的高斯滤波会将图像的...
  • OpenCV——高斯滤波

    千次阅读 2021-06-11 16:42:40
    高斯滤波 高斯滤波器是一类根据高斯函数的形状来选择权值的线性平滑滤波器。高斯平滑滤波器对于抑制服从正态分布的噪声非常有效。一维零均值高斯函数为: g(x)=exp(-x^2/(2sigma^2)
  • Stirling 内插公式对非线性函数作多项式逼近, 利用中心差分卡尔曼滤波高斯混合概率假设密度滤波对后验多目 标状态一阶统计量进行估计, 并通过递推更新得到目标状态, 以实现对多个目标的跟踪. 该方法无需求解...
  • 人类的世界就是一个信号传输的世界,所以噪声无处不在,图像作为一种信号传输的方式当然也无法幸免。为了尽量减少噪声对图像质量的影响,还原...然后就大致位空域滤波、变换域滤波和时域滤波,当然还有一些其他方式
  • 高斯差分

    千次阅读 2020-01-13 20:05:16
    DOG(Difference of Guassian):简称 高斯函数的差分,是灰度图像增强和角点检测的一种方法。 (一)理论基础: 下面详细介绍DOG的角点检测(也称特征点提取)的理论过程: 通过将目标图像与高斯函数进行卷积...
  • 本文详细介绍高斯滤波和双边滤波的原理并给出MATLAB实现,最后对照高斯滤波与双边滤波的效果。 目录 一、滤波原理 1.1 一维高斯分布 1.2 二维高斯分布 1.3 高斯滤波总结 二、双边滤波 1. 双边滤波的原理 2. ...
  • 高斯差分滤波器 matlab

    热门讨论 2012-05-03 16:54:39
    这是高斯差分滤波器 用matlab 来实现的
  • 一、图像处理之均值滤波高斯滤波(高斯模糊),中值滤波,双边滤波 滤波器介绍 滤波器作为图像处理课程的重要内容,大致可分为两类,空域滤波器和频率域滤波器。本文主要介绍常用的四种滤波器:中值滤波器、均值...
  • matlab实现图像的高斯滤波

    万次阅读 多人点赞 2019-04-23 16:09:08
    高斯滤波的含义:高斯滤波就是对整幅图像进行加权平均的过程,每一个像素点的值,都由其本身和邻域内的其他像素值经过加权平均后得到。 高斯滤波的作用:高斯滤波是一种线性平滑滤波,适用于消除高斯...二维高斯分...
  • 高斯噪声与高斯滤波

    万次阅读 多人点赞 2017-10-09 12:06:58
    噪声噪声表现形式噪声在图像上常表现为一引起较强视觉效果的孤立像素点或像素块。一般,噪声信号与要研究的对象不相关,它以无用的信息形式出现,扰乱图像的可观测信息。通俗的说就是噪声让图像不清楚。...高斯
  • 基于OpenCV自己实现的高斯滤波,Sobel边缘检测,3通道图像分离,彩色图转灰度图,高斯滤波比OpenCV自带的GaussBlur要慢,仅作为理解原理学习之用。工程建议尽量用用OpenCV自带的函数。
  • 文章目录高斯函数高斯模板GaussianBlurmyGaussianBlur函数 高斯函数 高斯滤波器是也一种线性滤波器,能够有效的抑制噪声,平滑图像。其作用原理和均值滤波器类似,都是取滤波器窗口内的像素的均值作为输出。其窗口...
  • 高斯滤波

    万次阅读 多人点赞 2018-08-11 23:57:25
    内容整理自: https://blog.csdn.net/kuaile20/article/details/17606235 https://www.cnblogs.com/qiqibaby/p/5289977.html ... 高斯滤波 高斯滤波的含义:高斯滤波就是对整幅图像进...
  • 本文主要介绍常用的四种滤波器:中值滤波器、均值滤波器、高斯滤波器、双边滤波器,并基于opencv做出实现。空域的滤波器一般可以通过模板对原图像进行卷积。 注意:空域滤波器和频率域滤波器对比 1)空间域指图像...
  • DOG高斯差分

    2016-07-05 11:19:44
    matlab实现的高斯差分滤波,DoG滤波
  • 线性滤波高斯滤波

    千次阅读 2020-02-28 18:28:24
    高斯滤波是一种线性平滑滤波器,可以消除高斯噪声(噪声的概率分布从正态分布)。高斯滤波和平均滤波的操作是差不多的,每个像素点的值都是由其本身和邻域内的其他像素点的值通过加权后得到的。不同的是,均值...
  • 图像处理(三)——高斯滤波

    千次阅读 2018-11-03 10:13:00
    高斯滤波是一种线性平滑滤波,适用于消除高斯噪声,广泛应用于图像处理的减噪过程。通俗的讲,高斯滤波就是对整幅图像进行加权平均的过程,每一个像素点的值,都由其本身和邻域内的其他像素值经过加权平均后得到。
  • 在学习SIFT算法时,关于我们之所以构建高斯差分金字塔(DoG)的原因,我一直没有一个直观的理解,尤其无法理解高斯差分算子(DoG)为什么与高斯拉普拉斯算子(LoG)的近似。为了弄清这个问题,首先讲解什么是高斯...
  • 高斯滤波原理剖析

    万次阅读 多人点赞 2019-09-03 14:16:43
    高斯滤波高斯模糊一样吗 答:一样。不加“高斯”这个限定词时,滤波的范畴要远远大于模糊,后者只是前者的一个子集。当加上“高斯”限定以后,所指代的卷积操作就是同一个操作了,因为根据方程 滤波 = 卷积( ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,813
精华内容 3,525
关键字:

高斯差分滤波