保山公司做网站自由策划网站建设

news/2025/10/3 2:18:04/文章来源:
保山公司做网站,自由策划网站建设,永嘉营销网站建设,wordpress 最新 调用在上一节的图像卷积我们了解到图像卷积可以用于去除图像中的噪声#xff0c;那么对于现实生活中每一张采集到的图像都会包含噪声#xff0c;也就是我们通过相机无法得到不包含噪声的图像#xff0c;如果我想衡量噪声去除能力的强弱#xff0c;就必须在一张不含噪声的图像中…    在上一节的图像卷积我们了解到图像卷积可以用于去除图像中的噪声那么对于现实生活中每一张采集到的图像都会包含噪声也就是我们通过相机无法得到不包含噪声的图像如果我想衡量噪声去除能力的强弱就必须在一张不含噪声的图像中人为添加噪声。 噪声介绍 图像在获取或者传输过程中会收到随机信号的干扰产生噪声。 ·椒盐噪声又称作脉冲噪声它会随机改变图像中的像素值是由相机成像图像传输解码处理等过程产生的黑白相间像椒盐一样的亮暗点噪声。 ·高斯噪声高斯噪声是指噪声分布的概率密度函数服从高斯分布正态分布的一类噪声这种噪声形式会遍布在图像中每一个位置也就是说这种噪声是每一个像素都可能会含有的或大或小。 下图分别是椒盐噪声要么黑色要么白色较为明显和高斯噪声遍布整个区域的噪声像黑白电视机的雪花信号一样的示例图。 椒盐噪声的产生 椒盐噪声产生的步骤 Step1:确定添加椒盐噪声的位置。 Step2:确定噪声的种类(椒盐噪声有两种黑色噪声和白色噪声。 Step3:根据椒盐噪声的种类修改图像像素灰度值。 Step4:得到含有椒盐噪声的图像。 rand_double() high double cvflann::rand_double( double 1.0,double low 0) 最大值1最小值0如果不设置任何参数函数随机给出0~1之间分布的小数里面的参数也可以人为进行设置 比如设置为3和2那么产生的随机数就是分布在2~3之间的小数它是以返回值的形式给出返回值为double类型。  rand_int() high int cvflann::rand_int( int RAND_MAX,int low 0) int类型给出的默认值的最大值是系统给出的也可以进行人为设置,比如0~100那么输出的所有数都是0~100之间的整数它的形式也是以返回值给出。 上述两个函数我们可以灵活地使用由于图像像素值都为整数并且产生的椒盐噪声的数据也是0或者255因此我门主要使用rand_int,为了保证函数产生的随机数能够在范围之内也为了增加随机数所适用的图像比如给出一个512*512图像我们就设置函数内的值为512这种形式是比较笨拙的因此它最好的方式就是你可以随意的生成一个随机数这个范围给你一个比较大的范围比如说你在0~10000之间生成随机数但是由于我们的位置是在512*512的正方形中如果生成一个大于此范围的数那么你的位置将会超出图像因此我们最好的方法是将产生的随机数除以图像的长度或者宽度求余数余数一定能够小于图像的长宽的并且大于等于0通过这样的限定就可以使得产生的随机数一定在图像范围内保证了产生随机数的随机性同样产生的噪声由于可黑可白随机的所以可以根据产生的随机数除以2的方式因为除以2求余数要么是0要么是1我们可以假设0产生的就是白色噪声1产生的就是黑色噪声通过这样的方式就可以在先确定噪声的位置后再确定噪声的颜色或种类最后修改像素值便可以得到椒盐噪声。 高斯噪声的产生 高斯噪声生成的步骤: Step1:创建一个与图像尺寸数据类型以及通道数相同的Mat类变量。由于高斯噪声是在全局内产生的因此噪声的尺寸要与原图像一致。 Step2:在Mat类变量中产生符合高斯分布的随机数随机数分布在Mat矩阵中。 Step3:将原图像和含有高斯分布的随机数矩阵相加。 Step4:得到添加高斯噪声的图像。 fill() void cv::RNG::fill(InputOutputArray mat,int distType,InputArray a,InputArray b,bool saturateRange false) ·mat:用于存放随机数的矩阵(与原图像尺寸数据类型相同)目前只支持低于5通道的矩阵。 ·distType:随机数分布形形式选择标志高斯分布或均匀分布。 ·a:确定分布规律的参数在均匀分布的情况下这是一个包含范围的下边界在正太分布的情况下这是一个平均值。 ·b:确定分布规律的参数在均匀分布的情况下这是一个非包含上边界在正太分布的情况下这是一个标准差。 ·saturateRange:预饱和标志仅用于均匀分布我们在使用高斯分布时使用此参数的默认值即可。 示例 #include opencv2/opencv.hpp #include iostreamusing namespace cv; //opencv的命名空间 using namespace std;//椒盐噪声函数 void saltAndPepper(cv::Mat image, int n) //参数需要添加噪声的图像噪声点数目 {for (int k 0; k (n / 2); k){//随机确定图像中位置int i, j;i cvflann::rand_int() % image.cols; //取余运算保证在图像列数之内j cvflann::rand_int() % image.rows; //取余运算保证在图像行数之内int write_black std::rand() % 2;//判定为白色噪声还是黑色噪声if (write_black 0) //添加白色噪声{if (image.type() CV_8UC1)//处理灰度图像{image.atuchar(j, i) 255; //白色噪声}else if (image.type() CV_8UC3) //处理彩色图像{image.atcv::Vec3b(j, i)[0] 255; //cv::Vec3b为opencv定义的一个3个值的向量类型image.atcv::Vec3b(j, i)[1] 255; //[]指定通道B:0,G:1,R:2image.atcv::Vec3b(j, i)[2] 255;}}else if (write_black 1)//添加黑色噪声{if (image.type() CV_8UC1)//处理灰度图像{image.atuchar(j, i) 0; //白色噪声}else if (image.type() CV_8UC3) //处理彩色图像{image.atcv::Vec3b(j, i)[0] 0; //cv::Vec3b为opencv定义的一个3个值的向量类型image.atcv::Vec3b(j, i)[1] 0; //[]指定通道B:0,G:1,R:2image.atcv::Vec3b(j, i)[2] 0;}}} }//主函数 int main() {Mat lena imread(E:/opencv/opencv-4.6.0-vc14_vc15/opencv/lenac.png);Mat equalLena;cvtColor(lena, equalLena, COLOR_BGR2GRAY); //转为灰度图像if (lena.empty()|| equalLena.empty()){cout 请确认图像文件名称是否正确 endl;return -1;}Mat lena_G, equalLena_G;lena.copyTo(lena_G);equalLena.copyTo(equalLena_G);imshow(lena原图, lena);imshow(equallena原图, equalLena);saltAndPepper(lena, 10000); //彩色图像加椒盐噪声saltAndPepper(equalLena, 10000); //灰度图像添加椒盐噪声imshow(lena添加噪声, lena);imshow(equalLena, equalLena);cout 下面是高斯噪声 endl;waitKey(0);//等待函数用于显示图像,按下键盘任意键后退出Mat lena_noise Mat::zeros(lena.rows, lena.cols, lena.type()); //用于存放高斯随机数的与原图像尺寸大小数据类型相同的Mat类Mat equalLena_noise Mat::zeros(lena.rows, lena.cols, equalLena.type());imshow(lena原图, lena_G);imshow(equalLena原图, equalLena_G);RNG rng; //创建一个RNG类,opencv中RNG类是用于生成随机数的伪随机数生成器可用来生成各种类型的随机数rng.fill(lena_noise, RNG::NORMAL, 10, 20); //生成三通道的高斯分布随机数(后面的参数是均值和方差值)rng.fill(equalLena_noise, RNG::NORMAL, 15,30); //生成单通道的高斯分布随机数imshow(三通道高斯噪声, lena_noise);imshow(单通道高斯噪声, equalLena_noise);lena_G lena_G lena_noise; //在彩色图像中添加高斯噪声equalLena_G equalLena_G equalLena_noise;//在灰度图像中添加高斯噪声//显示添加高斯噪声后的图像imshow(lena(高斯), lena_G);imshow(equalLena(高斯), equalLena_G);imwrite(E:/opencv/opencv-4.6.0-vc14_vc15/opencv/equalLena_G.png, equalLena_G); //保存灰度椒盐噪声图片imwrite(E:/opencv/opencv-4.6.0-vc14_vc15/opencv/equalLena.png, equalLena); //保存灰度高斯噪声图片waitKey(0);//等待函数用于显示图像,按下键盘任意键后退出return 0;}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/925487.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

东莞网站优化推广rails 网站开发

导言 人工智能在医疗领域的应用正迅速发展,为医疗行业带来了新的可能性。本文将深入探讨人工智能在医疗中的智能辅助应用,以及这一趋势面临的前景和挑战。智慧医疗是指通过先进的信息技术,如人工智能、物联网、大数据等,实现医疗数…

做一个同城便民信息网站怎么做徐州木塑模板

开发过程中,需要开发一个在线编辑excel文档的功能,找到了这个合适的组件 Luckysheet ,一款纯前端类似excel的在线表格,功能强大、配置简单、完全开源。 可以导入文档,预览、编辑、保存、导出等功能,可以满…

广西金兰工程建设管理有限公司网站宁波网站建设慕枫科技

文章目录 前言介绍后言 前言 hello world欢迎来到前端的新世界 😜当前文章系列专栏:react.js 🐱‍👓博主在前端领域还有很多知识和技术需要掌握,正在不断努力填补技术短板。(如果出现错误,感谢大家指出)&am…

山西城乡和建设厅网站首页外贸网站建设公司方案

Java中数组存储数据具有局限性,我们通常用List替代数组 1.List集合类中元素有序,且可重复(有序:按添加的顺序) 2.ArrayList、 LinkedList、Vector三种实现类 ArrayList.、LinkedList.、Vector的使用: ArrayList的源码分析&#x…

杭州做网站哪家最好2018年期刊网站建设调查

目录 安装路径 启动文件 安装路径 CentOS CentOS CentOS CentOS & Ubuntu 启动报错解决方案 检查端口冲突 验证配置文件 检查文件权限 检查系统资源限制 防火墙或安全限制 检查日志 总结 安装路径 启动文件 在 CentOS 中使用 yum 安装 Nginx 时&#xff…

【Go语言小工具】Mikrotik批量替换程序

【Go语言小工具】Mikrotik批量替换程序Go语言非常适合做一些命令行小工具,编译下面这个代码生成golang-mikrotik-replace.exe文件 package mainimport ("flag""fmt""net/url""os&…

网站开发项目答辩视频国家信息公示网查营业执照年报

文章目录正文git 流程:正常:查看:回滚删除:远程:分支:底层:学习网站:廖雪峰git教程 ,笔记不断更新中~ 正文 git 流程: 正常: 项目目录下 git i…

龙华网站-建设深圳信科外面网站怎么做

一直有一个想法,感觉自己很多基础算法不是很扎实,想要找个机会写一些算法的整理,顺便自己总结一些实用的模板。 最近偶然在训练赛中连续做了2道思维矩阵快速幂的题目,碰巧有时间,就以矩阵快速幂作为这个系列博客的开始…

电子商务网站建设运营网站 加域名

事务的简单配置及使用 配置事务管理器声明队列生产者代码测试 RabbitMQ是基于AMQP协议实现的,该协议实现了事务机制,因此RabbitMQ也支持事务机制. SpringAMQP也提供了对事务相关的操作.RabbitMQ事务允许开发者确保消息的发送和接收是原子性的&#xff0c…

网站关键词优化费用福田蒙派克e质量怎么样

前期准备 三台服务器,服务器使用的是 centos7 mysql-5.7.24-linux-glibc2.12-x86_64 安装包 使用是版本是 mysql-5.7.24 数据库安装 将 mysql 安装包上传到三台服务器上,我使用 FlashFXP 作为上传工具 解压安装包 tar -zxvf mysql-5.7.24-linux-glibc…

做电焊加工的网站wordpress首页幻灯片尺寸

松哥周末抽空给 Spring Security 系列也录制了一套视频,目录如下:感兴趣的小伙伴戳这里-->Spring BootVue微人事视频教程今天的话题来自一个小伙伴在微信上的提问:看到这个问题,松哥忽然想到我自己之前写过 Spring BootSwagger…

网站建设与运营课程总结qq音乐的网站建设信息

Java框架可以变,基础不会变。 Java 是一门高级编程语言,由 Sun Microsystems(后来被 Oracle 收购)所开发,于 1995 年首次发布。Java 的设计目标是“一次编写,到处运行”(Write Once, Run Anywhere),也被称为 WORA。这意味着可以在不同的操作系统和硬件平台上运行同样…

US$34 Super Auto Decoder and Pick Tool KW1 (Left)

Super Auto Decoder and Pick Tool KW1 (Left) Package includes:1pc x Super Auto Decoder and Pick Tool KW1 (Left) Pictures of Super Auto Decoder and Pick Tool KW1 (Left)Super Auto Decoder and Pick Tool KW…

贡井区建设局网站久久建工集团

Problem: 百亿富翁 文章目录 思路解题方法复杂度Code 思路 这是一个单调栈的问题。单调栈是一种特殊的栈结构,它的特点是栈中的元素保持单调性。在这个问题中,我们需要找到每个元素左边和右边第一个比它大的元素。我们可以使用一个单调递增的栈来解决这个…

做网站的岗位好吗人才招聘网最新招聘

实模式:(即实地址访问模式)它是Intel公司80286及以后的x86(80386,80486和80586等)兼容处理器(CPU)的一种操作模式。实模式被特殊定义为20位地址内存可访问空间上,这就意味着它的容量是2的20次幂&#xff08…

网站的版面布局网站建设与熊掌号未来的关系

一、文章前言 SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,那么如何搭建部署AI创作ChatGPT?小编这里写一个详细图文教程吧。已支持…

公司网站优化推广电子商务营销推广

数据检索算法是指从数据集合(数组、表、哈希表等)中检索指定的数据项。 数据检索算法是所有算法的基础算法之一。 本文发布 三元搜索(Ternary Search)的源代码。 1 文本格式 using System; namespace Legalsoft.Truffer.Algo…

创意网站交互wordpress 备案信息修改

目录 指针的使用 strlen的模拟实现 传值调用和传址调用 数组名的理解 使用指针访问数组 一维数组传参的本质 冒泡排序 个人主页(找往期文章):我要学编程(ಥ_ಥ)-CSDN博客 指针的使用 strlen的模拟实现 库函数strlen的功能是求字符串…

10.2刷题计划

力扣10题 正则表达式匹配力扣22题 括号生成 z是代表左括号的数量,y代表右括号的数量,k代表每个括号的最大数量 设置一个temp,存储递归中的字符串 返回条件:左括号和右括号数量均到达k,将temp压入答案中 每次递归…

云南省建设厅网站人员查询湛江建站公司

学习一门新的编程语言可能是一个具有挑战性的过程,但通过一些系统的方法,可以大大加快这个过程。 目录 第一步:通过书籍和视频课程掌握基本语法1. **学习编程语言的基础知识**2. **掌握字符串处理**3. **掌握正则表达式和解析器**4. **掌握面…