【matlab 图像处理】图像锐化

这篇具有很好参考价值的文章主要介绍了【matlab 图像处理】图像锐化。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

图像锐化

对人眼视觉系统的研究表明,人类对形状的感知一般通过识别边缘、轮廓、前景和背景而形成。在图像处理中,边缘信息也十分重要。边缘是图像中亮度突变的区域,通过计算局部图像区域的亮度差异,从而检测出不同目标或场景各部分之间的边界,是图像锐化,图像分割、区域形状特征提取等技术的重要基础。图像锐化(Image Sharpening)的目的是加强图像中景物的边缘和轮廓,突出图像中的细节或增强被模糊了的细节。

非肤色初步过滤

对非肤色部分进行初步过滤

function Out=FirstFilter(In)  % 第一次滤波
    Out=In;
    [height,width,c] = size(In);  % 获取输入图像尺寸信息
    IR=In(:,:,1); IG=In(:,:,2);IB=In(:,:,3);   % 分别获取三个通道
    for j=1:height
        for i=1:width
            if (IR(j,i)<160/255 && IG(j,i)<160/255 && IB(j,i)<160) && (IR(j,i)>IG(j,i) && IG(j,i)>IB(j,i))    % 分别查看各像素点IR  IB  IG根据取值复制相应像素点值 
                Out(j,i,:)=0;                       % 赋值0
            end
            if IR(j,i)+IG(j,i)>500/255              % IG + IR 值大于500/255 时置输出值为0
                Out(j,i,:)=0;
            end
            if IR(j,i)<70/255 && IG(j,i)<40/255 && IB(j,i)<20/255
                Out(j,i,:)=0;
            end
        end
    end
    figure,imshow(Out);title('非肤色初步过滤'); 
end

【matlab 图像处理】图像锐化

YCgCr空间范围肤色检测

将RGB颜色模型转化为YCgCr颜色模型,使用中值滤波对图像进行中值滤波

function Out=SecondFilter(In)    % 第二次滤波
    IR=In(:,:,1); IG=In(:,:,2);IB=In(:,:,3);         
    [height,width,c] = size(In);     % 获取图像size
    Out=zeros(height,width);          % 根据size创建空矩阵
    for i=1:width
        for j=1:height  
           R=IR(j,i); G=IG(j,i); B=IB(j,i);           % R G B 赋值
           Cg=(-81.085)*R+(112)*G+(-30.915)*B+128;    % 颜色模型转换
           Cr=(112)*R+(-93.786)*G+(-18.214)*B+128;         
           if Cg>=85 && Cg<=135 && Cr>=-Cg+260 && Cr<=-Cg+280       % 根据转换颜色模型后 各值的大小得输出
               Out(j,i)=1;                                          % 对像素值赋值1
           end
        end
    end
    Out=medfilt2(Out,[3 3]);                                         % 中值滤波  中值滤波medfilt2,用法是B = medfilt2(A, [m n]),输入图像A应是二维矩阵,
                                                                     % 程序中输入图像h是由imread得到的I加上噪声得到的,而imread读到的图像I通常是3维RGB图,
                                                                     % 是三维矩阵,因此才出现问题,显示A应该为二维的。
    
    figure,imshow(Out),title('YCgCr空间范围肤色检测');               % 输出图像
end

【matlab 图像处理】图像锐化

肤色与背景图像融合

ImageOrigin(双精度化后图像),DBImage(双边滤波后图像),SkinArea(YCgCr空间范围肤色检测处理后图像)
使用三种分别处理图像进行融合计算

function Out=Fuse(ImageOrigin,DBImage,SkinArea)
    Skin=zeros(size(ImageOrigin));     % 创建与ImageOrigin的size相等的空矩阵
    Skin(:,:,1)=SkinArea;              % 通道赋值
    Skin(:,:,2)=SkinArea;  
    Skin(:,:,3)=SkinArea;
    Out=DBImage.*Skin+double(ImageOrigin).*(1-Skin);    % 输出图像计算公式
    
    figure,imshow(Out);title('肤色与背景图像融合');  % 输出肤色检测图像
end

【matlab 图像处理】图像锐化

双边滤波

双边滤波器用于平滑图像并减少噪声,同时保留边缘,是一种非线性双边滤波器。双边滤波的核函数是空间域核与像素范围域核的综合结果:

  • 在平坦区域,临近像素的像素值的差值较小,对应值域权重接近于1,此时空域权重起主要作用,相当于直接对此区域进行高斯模糊。因此,平坦区域相当于进行高斯模糊。
  • 在边缘区域,临近像素的像素值的差值较大,对应值域权重接近于0,导致此处核函数下降(因),当前像素受到的影响就越小,从而保持了原始图像的边缘的细节信息。
    总体而言,在像素强度变换不大的区域,双边滤波有类似于高斯滤波的效果,而在图像边缘等强度梯度较大的地方,可以保持梯度。
function Out=DBfilt(In)
    [height,width,c] = size(In);    % 获取输入相关参数   高 宽 通道
    win=15;       % 定义双边滤波窗口宽度  
    sigma_s=6; sigma_r=0.1; % 双边滤波的两个标准差参数  
    [X,Y] = meshgrid(-win:win,-win:win);   % 生成二维网格矩阵
    Gs = exp(-(X.^2+Y.^2)/(2*sigma_s^2));  % 计算邻域内的空间权值    
    Out=zeros(height,width,c);             % 生成相关参数的空矩阵
    for k=1:c
        for j=1:height    
            for i=1:width  
                temp=In(max(j-win,1):min(j+win,height),max(i-win,1):min(i+win,width),k);
                Gr = exp(-(temp-In(j,i,k)).^2/(2*sigma_r^2));  % 计算灰度邻近权值        
                % W为空间权值Gs和灰度权值Gr的乘积       
                W = Gr.*Gs((max(j-win,1):min(j+win,height))-j+win+1,(max(i-win,1):min(i+win,width))-i+win+1);   % Gs * Gr  
                Out(j,i,k)=sum(W(:).*temp(:))/sum(W(:));                     
            end
        end  
    end
    figure,imshow(Out),title('双边滤波');
end

【matlab 图像处理】图像锐化

拉普拉斯锐化算子

拉普拉斯锐化图像是根据图像某个像素的周围像素到此像素的突变程度有关,也就是说它的依据是图像像素的变化程度。我们知道,一个函数的一阶微分描述了函数图像是朝哪里变化的,即增长或者降低;而二阶微分描述的则是图像变化的速度,急剧增长下降还是平缓的增长下降。那么据此我们可以猜测出依据二阶微分能够找到图像的色素的过渡程度,例如白色到黑色的过渡就是比较急剧的。

  • 或者用官方点的话说:当邻域中心像素灰度低于它所在的领域内其它像素的平均灰度时,此中心像素的灰度应被进一步降低,当邻域中心像素灰度高于它所在的邻域内其它像素的平均灰度时,此中心像素的灰度应被进一步提高,以此实现图像的锐化处理。

应用:

  • 运用拉普拉斯可以增强图像的细节,找到图像的边缘。但是有时候会把噪音也给增强了,那么可以在锐化前对图像进行平滑处理。
function Out=Sharp(In)

    H=[0 -1 0;-1 5 -1;0 -1 0]; %Laplacian锐化模板  拉普拉斯算子
    Out=imfilter(In,H);   % 拉普拉斯算子锐化滤波
    % Out=Out/3+In;                       % 输出值/3 + 输入值
    % imwrite(Out,'man4.jpg');
    
    figure,imshow(Out),title('Laplacia锐化图像');
end

【matlab 图像处理】图像锐化文章来源地址https://www.toymoban.com/news/detail-452148.html

到了这里,关于【matlab 图像处理】图像锐化的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数字图像处理【4】图像空间滤波-锐化

    对于初学者来说,可能没能搞清楚哪些是图像的高频信息,低频信息指代的是什么。 低频指的就是灰度变化比较小的像素区域 高频指的就是灰度变化比较大的像素区域 所谓灰度变化比较小的图像就是,内容;所谓灰度变化比较大的图像就是,边缘和纹理; 边缘:灰度变化较

    2024年02月10日
    浏览(46)
  • 数字图像处理|图像的平滑和锐化

      彩色图像平滑是一种常见的图像处理技术,旨在减少图像中的噪声和细节,使图像更加平滑和连续。在彩色图像中每个像素由红、绿、蓝三个通道的值组成,因此彩色图像平滑需要对每个通道分别进行处理。常用的彩色图像平滑方法包括均值滤波、高斯滤波、中值滤波等。

    2024年02月08日
    浏览(45)
  • Python 使用多种方法对图像进行锐化处理——图像处理

    fun_01() fun_02() fun_03()      

    2024年02月13日
    浏览(83)
  • 基于OpenCV的传统视觉应用 -- OpenCV图像处理 图像模糊处理 图像锐化处理

    图像处理是用计算机对图像进行分析,以获取所需结果的过程,又称为影像处理。图像处理一般是指数字图像的处理。数字图像是用工业相机、摄像机、扫描仪等设备经过拍摄得到的一个大的二维数组,该数组的元素称为像素,其值称为灰度值。 均值滤波是指任意一点的像素

    2024年02月07日
    浏览(74)
  • OV5640 摄像头的图像拉普拉斯锐化处理和边缘提取

    如图所示,这是整个视频采集系统的原理框图。         上电初始,FPGA 需要通过 IIC 接口对 CMOS Sensor 进行寄存器初始化配置。这些初始化的基本参数,即初始化地址对应的初始化数据都存储在一个预先配置好的 FPGA 片内 ROM中。在初始化配置完成后,CMOS Sensor 就能够持续

    2024年02月01日
    浏览(56)
  • 【图像处理:频率域平滑与锐化】理想滤波器,巴特沃思滤波器,高斯滤波器

    本文主要介绍频率域滤波器,此处的频率域是基于傅立叶变换得出。 在一幅图像中, 低频对应图像变化缓慢的部分 ,即图像大致外观和轮廓。 高频部分对应图像变化剧烈的部分即图像细节 。低通滤波器的功能是让低频率通过而滤掉或衰减高频,其作用是过滤掉包含在高频

    2024年02月04日
    浏览(55)
  • Opencv C++图像处理:亮度+对比度+饱和度+高光+暖色调+阴影+漫画效果+白平衡+浮雕+羽化+锐化+颗粒感

    更多详细信息请看:OpenCV专栏:翟天保Steven

    2024年02月04日
    浏览(55)
  • Matlab图像处理基础(1):图像表示,点处理

    目录 0. 概要 1. 图像表示 Image Representation 1.1 图像格式 Image format 1.2 图像分辨率 resolution of image 1.3 图像的编码 1.4 Matlab图像加载、显示和保存  1.5 Image Information 1.6 图像格式转换 1.7 其它类型的像素 1.8 像素数值格式 1.9 图像数据的访问和引用 3. 点处理 Point Processing 3.1 关于像

    2023年04月08日
    浏览(52)
  • 基于matlab的数字图像处理之彩色图像处理

    一、实验目的 (1)了解如何利用RGB分量生成简单的图像。 (2)熟练掌握RGB彩色模型转换到HIS彩色模型的过程。 (3)熟练掌握RGB图像的彩色分割。 (4)熟练掌握彩色图像如何在向量空间中进行边缘检测。 二、实验仪器(软件平台)     计算机、MATLAB软件 三、实验原理

    2024年02月06日
    浏览(48)
  • 数字图像处理-matlab图像内插

    目标各像素点的灰度值代替源图像中与其最邻近像素的灰度值 参考博客 假设一个2X2像素的图片采用最近邻插值法需要放大到4X4像素的图片,右边该为多少? 最近邻插值法坐标变换计算公式: s r c X = d s t X ∗ ( s r c W i d t h / d s t W i d t h ) srcX=dstX*(srcWidth/dstWidth) src X = d s tX ∗

    2024年02月03日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包