Opencv图像预处理(三)

devtools/2024/9/24 4:28:28/

blur(均值滤波)

一种常用的图像平滑处理方法,通过将像素的领域内像素值取平均来减少图像中的噪声,从而达到图像平滑的效果,图像会更模糊。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using OpenCvSharp;namespace _03_blur_均值滤波_
{internal class Program{static void Main(string[] args){Mat scrImage =   Cv2.ImRead(@"F:\AI视觉23班\06_OpenCV\images\girl3.jpg");Cv2.ImShow("原图", scrImage);//定义一个矩阵,接收Blur() 函数处理之后的图像Mat dstImage =new Mat();//参数1:输入的图像//参数2:输出的图像//参数3:卷积核大小Cv2.Blur(scrImage, dstImage, new Size(){Width=10, Height=10});Cv2.ImShow("效果", dstImage);Cv2.WaitKey(0);}}
}

高斯滤波

高斯滤波是一种线性平滑滤波器,它利用高斯函数对图像进行加权平均,可以有效地去除高斯噪声,同时平滑图像。

 Cv2.GaussianBlur(srcImage, dstImage4, new Size(3, 3));

课外扩展:https://www.jianshu.com/p/525ca85dad4e

图像腐蚀与膨胀

腐蚀:形态学操作,用于缩小图像中的亮区域,同时扩展暗区域(像素值较小的区域)。原理是在图像上滑动结构元素,将结构元素覆盖区域内的像素设置为最小像素值。腐蚀操作可以消除小的噪声、分割相连的区域,并改变区域的形状。

膨胀:形态学操作,用于扩展图像中的亮区域(像素值较大的区域)。它的原理是在图像上滑动结构元素,将结构元素覆盖区域内的像素设置为最大像素值。膨胀操作可以增加亮区域的大小,填充小的空洞,以及连接相邻的区域。

using OpenCvSharp;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace _04_图像腐蚀与膨胀
{internal class Program{static void Main(string[] args){Mat scrImage = Cv2.ImRead(@"F:\AI视觉23班\06_OpenCV\images\girl3.jpg");Cv2.ImShow("原图", scrImage);//定义一个矩阵,接收Blur() 函数处理之后的图像Mat dstImage = new Mat();//创建腐蚀/膨胀的形状//参数1:枚举类型  定义创建的区域形状//MorphShapes.Rect  矩形//MorphShapes.Ellipse 椭圆//MorphShapes.Cross 十字形Mat elem = Cv2.GetStructuringElement(MorphShapes.Cross, new Size() { Width = 15, Height = 15 });//腐蚀//参数1:输入图像//参数2:输出图像//参数3:腐蚀的形状和大小//参数4:腐蚀的中心点(可选参数,默认值是图像的中心点)//参数5:扩展的方式(可选参数)//参数6:扩展填充的值(可选参数)// Cv2.Erode(scrImage, dstImage, elem);//膨胀  参数与腐蚀相同Cv2.Dilate(scrImage, dstImage, elem);Cv2.ImShow("效果", dstImage);Cv2.WaitKey(0);}}}

开运算闭运算

开运算:先进行腐蚀操作,然后进行膨胀操作。通常用于去除小的噪声点。

Cv2.MorphologyEx(输入图像, 输出图像, MorphTypes.Open,操作的形状);

闭运算: 先进行膨胀操作,然后进行腐蚀操作。通常用于填充小的空洞。

Cv2.MorphologyEx(srcImage, dstImageClose, MorphTypes.Close, element);

http://www.ppmy.cn/devtools/116322.html

相关文章

Set 和 Map 的模拟实现

1、引言 在数据结构与算法的学习与实践中,关联容器(associative containers)是不可忽视的重要工具。作为高效管理数据的一类容器,C 标准库中的 set 和 map 在现代软件开发中扮演着关键角色。这两个容器通过平衡二叉搜索树&#x…

2024年9月21日---关于Maven

第一节:maven工具的简介 1.1 开发过程中遇到的问题 1、都是同样的代码,为什么在我的机器上可以编译执行,而在他的机器上就不行? 2、为什么在我的机器上可以正常打包,而配置管理员却打不出来? 3、项目组加入了新的人…

Qt窗口——QToolBar

文章目录 工具栏创建工具栏设置toolTip工具栏配合菜单栏工具栏浮动状态 工具栏 QToolBar工具栏是应用程序中集成各种功能实现快捷键使用的一个区域。 可以有多个,也可以没有。 创建工具栏 #include "mainwindow.h" #include "ui_mainwindow.h&qu…

vue项目加载cdn失败解决方法

注释index.html文件中 找到vue.config.js文件注释、

卷积神经网络(Convolutional Neural Network,CNN)

CNN网络主要有三部分构成:卷积层、池化层和全连接层构成,其中卷积层负责提取图像中的局部特征;池化层用来大幅降低参数量级(降维);全连接层类似神经网络的部分,用来输出想要的结果。 卷积思想 卷积Convolution&#x…

前端css样式覆盖

.detail .grid .active 的样式会覆盖 .detail .grid .bgorange .active 在CSS中,当多个选择器应用于同一元素时,会根据一定的优先级规则决定哪个样式会被应用。 CSS选择器的优先级规则如下: 内联样式(在HTML元素的style属性中定…

全栈开发(四):使用springBoot3+mybatis-plus+mysql开发restful的增删改查接口

1.创建user文件夹 作为增删改查的根包 路径 src/main/java/com.example.demo/user 2.文件夹里文件作用介绍 1.User(实体类) package com.example.demo.user; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.IdType; impo…

Django 请求配置

http请求配置 请求流程 urls.py配置 from first_app import viewsurlpatterns [path(admin/, admin.site.urls),path(test/,views.first_test), ] views.py配置 from django.shortcuts import render,HttpResponse# Create your views here. def first_test(request):prin…