iOS-Opencv 基础学习五(方框滤波,高斯模糊)

opencv 31-图像平滑处理-方框滤波cv2.boxFilter() 方框滤波(Box Filtering)是一种简单的图像平滑处理方法,它主要用于去除图像中的噪声和减少细节,同时保持图像的整体亮度分布。方框滤波的原理很简单:对于图像中的每个像素,将其周围的一个固定大小的邻域内的像素值取平均,然后将这个平均值赋值给当前像素。这个邻域通常是一个正方形,称为方框或窗口。方框滤波相当于用一个均值滤波器对图像进行滤波。与均值滤波的不同在于,方框滤波不会计算像素均值。在均值滤波中,滤波结果的像素值是任意一个点的邻域平均值,等于各邻域像素值之和除以邻域面积。 阅读详情

利用opencv对图片进行方框滤波,高斯模糊处理。

方框滤波:

方框滤波(box Filter)被封装在一个名为boxblur的函数中,即boxblur函数的作用是使用方框滤波器(box filter)来模糊一张图片,从src输入,从dst输出。

函数原型如下:


    C++: void boxFilter(InputArray src,OutputArray dst, int ddepth, Size ksize, Point anchor=Point(-1,-1), boolnormalize=true, int borderType=BORDER_DEFAULT )  
参数详解:

  • 第一个参数,InputArray类型的src,输入图像,即源图像,填Mat类的对象即可。该函数对通道是独立处理的,且可以处理任意通道数的图片,但需要注意,待处理的图片深度应该为CV_8U, CV_16U, CV_16S, CV_32F 以及 CV_64F之一。
  • 第二个参数,OutputArray类型的dst,即目标图像,需要和源图片有一样的尺寸和类型。
  • 第三个参数,int类型的ddepth,输出图像的深度,-1代表使用原图深度,即src.depth()。
  • 第四个参数,Size类型(对Size类型稍后有讲解)的ksize,内核的大小。一般这样写Size( w,h )来表示内核的大小( 其中,w 为像素宽度, h为像素高度)。Size(3,3)就表示3x3的核大小,Size(5,5)就表示5x5的核大小
  • 第五个参数,Point类型的anchor,表示锚点(即被平滑的那个点),注意他有默认值Point(-1,-1)。如果这个点坐标是负值的话,就表示取核的中心为锚点,所以默认值Point(-1,-1)表示这个锚点在核的中心。
  • 第六个参数,bool类型的normalize,默认值为true,一个标识符,表示内核是否被其区域归一化(normalized)了。
  • 第七个参数,int类型的borderType,用于推断图像外部像素的某种边界模式。有默认值BORDER_DEFAULT,我们一般不去管它。

 下面的代码中之只用到了前4个参数

//  方框滤波
+ (UIImage *)ImageToBoxFilter:(UIImage *)image
{
    Mat mat_image_src;
    UIImageToMat(image, mat_image_src);
    Mat mat_image_out;
    boxFilter(mat_image_src, mat_image_out, -1, cv::Size(15,15));
    return MatToUIImage(mat_image_out);
}

                          

     

高斯滤波:

       高斯滤波是一种线性平滑滤波,适用于消除高斯噪声,广泛应用于图像处理的减噪过程。通俗的讲,高斯滤波就是对整幅图像进行加权平均的过程,每一个像素点的值,都由其本身和邻域内的其他像素值经过加权平均后得到。高斯滤波的具体操作是:用一个模板(或称卷积、掩模)扫描图像中的每一个像素,用模板确定的邻域内像素的加权平均灰度值去替代模板中心像素点的值。

大家常常说高斯滤波最有用的滤波操作,虽然它用起来,效率往往不是最高的。

高斯模糊技术生成的图像,其视觉效果就像是经过一个半透明屏幕在观察图像,这与镜头焦外成像效果散景以及普通照明阴影中的效果都明显不同。高斯平滑也用于计算机视觉算法中的预先处理阶段,以增强图像在不同比例大小下的图像效果(参见尺度空间表示以及尺度空间实现)。从数学的角度来看,图像的高斯模糊过程就是图像与正态分布做卷积。由于正态分布又叫作高斯分布,所以这项技术就叫作高斯模糊。

图像与圆形方框模糊做卷积将会生成更加精确的焦外成像效果。由于高斯函数的傅立叶变换是另外一个高斯函数,所以高斯模糊对于图像来说就是一个低通滤波操作。


GaussianBlur函数的作用是用高斯滤波器来模糊一张图片,对输入的图像src进行高斯滤波后用dst输出。它将源图像和指定的高斯核函数做卷积运算,并且支持就地过滤(In-placefiltering)。

 

    C++: void GaussianBlur(InputArray src,OutputArray dst, Size ksize, double sigmaX, double sigmaY=0, intborderType=BORDER_DEFAULT )  

  • 第一个参数,InputArray类型的src,输入图像,即源图像,填Mat类的对象即可。它可以是单独的任意通道数的图片,但需要注意,图片深度应该为CV_8U,CV_16U, CV_16S, CV_32F 以及 CV_64F之一。
  • 第二个参数,OutputArray类型的dst,即目标图像,需要和源图片有一样的尺寸和类型。比如可以用Mat::Clone,以源图片为模板,来初始化得到如假包换的目标图。
  • 第三个参数,Size类型的ksize高斯内核的大小。其中ksize.width和ksize.height可以不同,但他们都必须为正数和奇数。或者,它们可以是零的,它们都是由sigma计算而来。
  • 第四个参数,double类型的sigmaX,表示高斯核函数在X方向的的标准偏差。
  • 第五个参数,double类型的sigmaY,表示高斯核函数在Y方向的的标准偏差。若sigmaY为零,就将它设为sigmaX,如果sigmaX和sigmaY都是0,那么就由ksize.width和ksize.height计算出来。
  • 为了结果的正确性着想,最好是把第三个参数Size,第四个参数sigmaX和第五个参数sigmaY全部指定到。
  • 第六个参数,int类型的borderType,用于推断图像外部像素的某种边界模式。有默认值BORDER_DEFAULT,我们一般不去管它。


iOS 代码操作如下

//  高斯模糊
+ (UIImage *)ImageToGaussianBlur:(UIImage *)image
{
    Mat mat_image_src;
    UIImageToMat(image, mat_image_src);
    Mat mat_image_out;
    GaussianBlur(mat_image_src, mat_image_out, cv::Size(21,21), 0,0);
    return MatToUIImage(mat_image_out);
}



运行效果如下:

         




方框滤波(Box filtering) 1.基本原理  与均值滤波不同的是,方框滤波不会计算像素的均值。在均值滤波中,滤波结果的像素值是任意一个点的邻域平均值,等于各邻域像素值之和除以邻域面积。而在方框滤波中,可以自由选择是否对均值滤波的结果进行归一化,即可以自由选择滤波结果是邻域像素值之和的平均值,还是邻域像素值之和。  以 5×5 的邻域为例,在进行方框滤波时,如果计算的是邻域像素值的均值,则滤波关系如图 1-1 所示。如果计算的是邻域像素值之和,则滤波关系如图 1-2 所示。 图1-1  方框滤波关系示例–计算邻域像素值均值 图1-2. 阅读详情

相关推荐

OpenCV(二十二):均值滤波、方框滤波和高斯滤波

由于高斯函数在中心点附近权重较大,而在离中心点越远的像素权重越小,它能够保留图像的整体结构,并且相对于其他平滑滤波器,它对细节的保留更好。方框滤波和均值滤波核基本上是一致的,主要的区别是要不要归一化处理,如果使用归一化处理,方框滤波就是均值滤波。:均值滤波的卷积核越大,图片的失真越明显,图片会更模糊,如果设置核的大小为(1,1),则结果是原始图像。高斯函数是一个连续的概率分布函数,它的形状是一个钟形曲线,中心点最高,两边逐渐变低。遍历图像像素:对于图像中的每个像素,高斯滤波器会考虑其周围邻域像素的值。

weixin_63357306的博客 3715

小议五中滤波(BoxBlur、Blur、GaussianBlur、medianBlur、bilateralFilter)

先放张ha,第一次发博客,如果那里错误请在评论区喷哈,不要让错误传的更广,一起进步,加油 这里写目录标题前提方框滤波均值滤波高斯滤波中值滤波双边滤波 前提 平滑处理又称模糊处理,用来减少图像上的噪点或者失真(这个我还没理解) 消除噪点的原理:图像的能量大部分集中在低频和中频段,较高段经常被噪点淹没,而滤波能达到降低高频的效果来去除噪点。 方框滤波 原型: void boxFilter(InputArray src,OutputArray dst, int ddepth, Size ksize, Point

weixin_46579515的博客 838

十分钟带你了解均值滤波和方框滤波

均值滤波和方框滤波都是用于平滑图像和去除噪声的常见技术,你可以根据具体的需求选择合适的方法。

AI_dataloads的博客 1527

【OpenCV】—线性滤波:方框滤波、均值滤波、高斯滤波

平滑处理(smoothing)也称模糊处理(bluring),是一种简单且使用频率很高的图像处理方法。平滑处理的用途有很多,最常见的是用来减少图像上的噪点或者失真。处理降低图像分辨率时,平滑处理是好用的方法。(1)图像噪声:指存在于图像数据中的不必要的或多余的干扰信息。噪声的存在严重影响了遥感图像的质量,因此在图像增强处理和分类处理之前,必须予以纠正。[1]图像中各种妨碍人们对其信息接受的因素即可称为图像噪声 。噪声在理论上可以定义为“不可预测,只能用概率统计方法来认识的随机误差”。(2)图像滤波:指在尽量

qq_44859533的博客 4119

ffmpeg缩放处理视频背景高斯模糊

ffmpeg 实现视频背景的高斯模糊,缩放视频分辨率,剪裁视频,模糊视频背景

weixin_44149978的博客 1567

49.图像的方框滤波

然后,定义了一个5x5的滤波核,用于进行方框滤波。接下来,使用boxFilter函数对图像进行方框滤波操作。最后,使用imshow函数显示原始图像和滤波后的图像。方框滤波(Box Filtering)是一种基本的图像平滑滤波方法,它对图像中的每个像素周围的邻域进行求和操作,并取平均值作为该像素的新值。方框滤波的数学原理很简单,它对滤波窗口内的像素值进行求和操作,并取平均值作为输出像素值。在OpenCV中,可以使用boxFilter函数进行方框滤波。减少图像的细节,模糊图像。平滑图像以降低噪声。

twnkie的博客 451

iOS 实现图片高斯模糊效果

将 bgEffectView 盖到imageview上面即可。用到了 UIVisualEffectView。

liubo的博客 2976

噪声整形与过采样实战:从N-bit ADC到DSM的SQNR优化指南

本文深入探讨了噪声整形与过采样技术在DSM(Delta-Sigma调制器)中的应用,重点分析了量化器位数(N)、滤波器阶数(L)和过采样率(OSR)对SQNR优化的影响。通过实战案例和参数协同优化策略,帮助工程师在音频处理和通信系统设计中实现更优的信号质量。

weixin_42561040的博客 339

iOS开发-图片高斯模糊效果

iOS开发的时候有的时候需要将图片设置模糊,或者通过点击下拉方法,去除模糊,一切都是为了应用更受用户欢迎,iOS7之后半透明模糊效果得到大范围使用的比较大,现在也可以看到很多应用局部用到了图片模糊效果,关于图片实现高斯模糊效果有三种方式,CoreImage,GPUImage(第三方开源类库)和vImage。GPUImage没怎么用过,本文就讲两种方式Core Image和vImage。 Core...

piaoluo_64的专栏 1958

CMake安装grpc生成gRPCTargets.cmake文件

以下是安装语句: cd grpc_folder git submodule update --init cmake .. make -j 4 sudo make install 然而编写依赖gRPC的程序,发现无法调用gRPC的CMake文件,错误提示如下所示: include could not find load file: /usr/local/lib/cmake/g...

2328

CPRI原理及应用--基本原理

本文主要介绍CPRI的基本原理,包括CPRI的发展历程、CPRI基本协议、速率、帧结构、时延模型等

u014035968的博客 2万+

OpenCV学习记录

OpenCV 提供了丰富的文档和示例代码,方便开发者快速上手和实现各种计算机视觉任务。无论是学术研究、工业应用,还是个人项目,OpenCV 都是一个非常强大的工具。

zenukennn的博客 147

月薪30k+的工业视觉,必备Java+YOLO技能(工业级落地全拆解)

30k+工业视觉岗的核心不是算法调参,而是用Java把YOLO落地到工业场景的能力——稳运行、能对接、可管理是高薪的核心壁垒;必备技能分五层:模型工业级适配、Java推理核心、SpringBoot后端、工业部署运维、场景适配,每层都要练到“能落地、能讲清、能避坑”;学习路径的核心是“实战驱动”:不要只学理论,从一个完整的工业项目(如锂电缺陷检测)入手,练完就能对标高薪岗。

2601_94871597的博客 524

OpenCV

是一个开源的计算机视觉和机器学习软件库。它最初由英特尔开发,旨在为实时计算机视觉应用提供一个通用的基础设施,并加速机器感知在商业产品中的使用。现在它由 OpenCV 团队维护,并拥有一个庞大的开发者社区。OpenCV 是计算机视觉领域事实上的标准库之一。它提供了从基础的图像操作到先进的计算机视觉和机器学习算法的广泛功能。其开源、跨平台、高效的特点,以及丰富的文档和社区支持,使其成为研究人员、工程师和开发者在图像处理、计算机视觉和人工智能应用开发中的首选工具。

wxhzz的博客 1147

2021.07.05【R语言】丨预测lncRNA并绘制venn图

目录摘要环境与方法依赖工具预测工具绘制工具使用命令预测lncRNA统计noncoding_ID绘制Venn图结果展示总结 摘要 接到一个单样品测lncRNA数据的项目,正好拿来练练手,梳理一下lncRNA流程。这里记录预测lncRNA并生成venn图的过程 环境与方法 R version 3.6.3 (2020-02-29) 依赖工具 预测工具 CPC2 CNCI Pfam CPAT 绘制工具 R:VennDiagram 使用命令 预测lncRNA CPC2 #更换env conda activate py

2035

Python分布式爬虫深度实战:反爬破解+数据清洗+性能优化全流程

分布式爬虫的核心是“调度中心化+执行分布式”,Scrapy-Redis是最易落地的框架,无需从零写调度逻辑;反爬破解要分级应对:基础反爬靠随机UA/限流,进阶反爬靠代理池,高级反爬靠第三方验证码API;数据清洗的关键是“批量处理+标准化”,避免内存溢出,核心字段去重和异常值过滤是必做步骤;性能优化不是单纯加节点,而是从架构(分片)、代码(批量写入)、服务器(索引/网络)三层协同优化,才能实现效率翻倍。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1200

OpenCV深度解析从图像处理基础到计算机视觉实战应用全攻略

OpenCV作为一个功能全面、社区活跃的库,为计算机视觉的探索和应用提供了坚实的起点。从图像处理的基础到特征提取的精髓,再到高级应用的实战,这条学习路径帮助我们逐步建立起对计算机视觉的系统性理解。随着人工智能,特别是深度学习的发展,OpenCV也在不断集成最新的模型和算法(如通过Open Model Zoo)。未来,结合深度学习与OpenCV的传统优势,开发者将能创造出更智能、更强大的视觉应用系统,持续推动自动驾驶、医疗影像、工业自动化等领域的创新。

336

uniapp - 获取设备麦克风权限+麦克风设备列表,用户可选择切换麦克风设备功能,选择麦克风采集设备后点击录制音频外部声音+可随时暂停/继续录音+记录音频录制时长(支持在线播放试听或下载MP3文件)

uniapp获取麦克风设备列表,uniapp录制声音,Uniapp获取麦克风权限,uniapp苹果ios安卓app获取麦克风设备列表,Uniapp H5获取浏览器麦克风并实现录音,Uniapp实现麦克风权限管理与音频录制全流程,uni-app实战案例:实现H5页面麦克风权限获取与录音功能,uni-app音频录制,uniapp麦克风授权窗口,uniapp获取iOS麦克风权限,实现前端录音并播放,把音频传给后端接口处理,获取麦克风并实现录音功能,前端获取/切换麦克风播放采集音频和采集音量大小,前端调用麦克风实现

🏆 前端领域优质创作者 2980

OpenCV图像处理实战从入门到精通的完整指南

图像可以存在于不同的色彩空间中,最常见的是BGR(OpenCV默认)、灰度(Grayscale)和HSV(Hue, Saturation, Value)。HSV色彩空间则更符合人类对颜色的感知方式,将颜色信息(色调H)、纯度(饱和度S)和明暗(明度V)分离开,在处理与颜色相关的任务(如颜色追踪)时非常有用。几何变换则改变了图像的整体空间关系,最常见的包括缩放(改变尺寸)、平移(移动位置)、旋转(绕某点转动)和仿射变换(保持平行线关系)。它不仅仅是一个简单的数组,而是一个智能指针,负责管理图像矩阵的内存。

chengying1216的博客 238

使用FSL对DTI数据进行预处理

在fsl官网我们可以看到是同时使用了AP和PA图像处理,采用的是最小二乘法将2个图像合并为1个图像。–inindex此处需要处理的是PA图像,在acq_param.txt中我们是把这个放在第一行的,此处为1,如果处理的是AP图像,则此处为2。为了校正磁场引起的畸变,对DTI的B0像分别采集了A>P和P>A的反向编码的两种B0像。即如果AP和PA只有1个B0像时,那么这里就是两行,如果各有3个B0像则这里应该是6行。假设转换后的图像为sub01_AP.nii.gz和sub01_PA.nii.gz。

weixin_52073820的博客 4839

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

15、方框滤波

一、方框滤波 方框滤波是均值滤波的一般形式,在均值滤波中,将滤波器中所有的像素值求和后的平均值作为滤波后结果,方框滤波也是求滤波器内所有像素值的之和,但是方框滤波可以选择不进行归一化,就是将所有像素值的和作为滤波结果,而不是所有像素值的平均值。 用公式表达为: K=1α[1⋯1⋮⋱⋮1⋯1]K=\frac{1}{\alpha}\left[\begin{array}{ccc}1 & \cdots & 1 \\ \vdots & \ddots & \vdots \\ 1 &amp

MuMengSunny 2383

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

6.8方框滤波

能够理解如何在OpenCV中使用C++实现方框滤波。方框滤波器是一个简单但有效的工具,可用于图像平滑和噪声减少。

weixin_45794330的博客 739

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

OpenCV函数简记_第三章数字图像的滤波处理(方框,均值,高斯,中值和双边滤波)

本文描述了数字图像的滤波处理,主要由线性滤波和非线性滤波两个部分组成。其中: 1. 线性滤波包含:方框滤波,均值滤波,高斯滤波。 2. 非线性滤波包含: 中值滤波,双边滤波。

目前涉及领域:目标检测,语义分割以及数字图像处理 916

python 图像处理——图像平滑(图像滤波)之线性滤波(手写均值滤波、方框滤波、高斯滤波)

本文主要讲解了常用于消除噪声的图像平滑方法,常见方法包括三种线性滤波(均值滤波、方框滤波、高斯滤波)和两种非线性滤波(中值滤波、双边滤波)。这篇文章介绍了均值滤波、方框滤波和高斯滤波,通过原理和代码进行对比,分别讲述了各种滤波方法的优缺点,有效地消除了图像的噪声,并保留图像的边缘轮廓。

weixin_44598554的博客 2441

盒子(方框)滤波(BoxFilter)原理及C++及Matlab实现

写在前面 盒子滤波是一种非常有用的线性滤波,也叫方框滤波,最简单的均值滤波就是盒子滤波归一化的情况。 应用:可以说,一切需要求某个邻域内像素之和的场合,都有盒子滤波的用武之地,比如:均值滤波、引导滤波、计算Haar特征等等。 优势:就一个字:快!它可以使复杂度为O(MN)的求和,求方差等运算降低到O(1)或近似于O(1)的复杂度,也就是说与邻域尺寸无关了,有点类似积分图吧,但是貌似比积分图更快(与它的实现方式有关)。 opencv函数: void boxFilter( InputArray sr

Look Forward To 3744

学习 opencv---(7) 线性邻域滤波专场:方框滤波,均值滤波,高斯滤波

本篇文章中,我们一起仔细探讨了OpenCV图像处理技术中比较热门的图像滤波操作。图像滤波系列文章浅墨准备花两次更新的时间来讲,此为上篇,为大家剖析了“方框滤波”,“均值滤波”,“高斯滤波”三种常见的邻域滤波操作。而作为非线性滤波的“中值滤波”和“双边滤波”,我们下次再分析。 因为文章很长,如果详细啃的话,或许会消化不良。在这里给大家一个指引,如果是单单想要掌握这篇文章中讲解的...

daxi0315的博客 529
上一篇: iOS-Opencv 基础学习四(对图片进行图像模糊处理blur、边缘处理Canny)
下一篇: python爬取数据练习(一)
think_ma
博客等级 码龄14年 51粉丝 72原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值