05-图像的平滑处理(不同的滤波操作)

对图像进行平滑处理实则就是对图像进行滤波操作罢了

每张图片都有若干个像素点所构成,滤波操作上就是将照片上的某些部分像素点进行修改从而达到平滑的效果

先展示一下原图

import cv2
img = cv2.imread('E:\Jupyter_workspace\study\data/test1.png')cv2.imshow('test1',img)#以test1为命名的窗口进行显示
cv2.waitKey(0)
cv2.destroyAllWindows()

在这里插入图片描述

均值滤波

简单的平均卷积操作
先确定卷积核的大小,然后把图像按照卷积核(也就是一个二维矩阵,一般取奇数)的大小进行分组,每一个卷积核作为一组,再将每组的数值进行相加求平均值,然后把该平均值代替这一组的所有数值
cv2.blur(img,(3,3))
第一个参数:输入的图像对象数据
第二个参数:核的大小 一般的为奇数的二维数组,然后把这个二维数组进行求均值分别替代这个二维数组里面的值,每一个二维数组进行一次求均值,把整个图像按照[3,3]的二维数组进行划分

import cv2blur = cv2.blur(img,(3,3))cv2.imshow('JZLB',blur)
cv2.waitKey(0)
cv2.destroyAllWindows()

在这里插入图片描述

方框滤波

基本和均值滤波一样,可以选择归一化
cv2.boxFilter(img,-1,(3,3),normalize=True)
cv2.boxFilter(img,-1,(3,3),normalize=False)
第一个参数:输入的图像对象数据
第二个参数:-1表示得到的颜色通道数和原图是一致的,通常情况也都是-1
第三个参数:卷积核[3,3]的矩阵
第四个参数:是否要做归一化
True 当卷积求和越界时,处理个均值滤波效果完全一致
False 当卷积求和越界时,只要大于255时所有的值均取255

import cv2box = cv2.boxFilter(img,-1,(3,3),normalize=True)cv2.imshow('FKLB_True',box)
cv2.waitKey(0)
cv2.destroyAllWindows()

在这里插入图片描述

import cv2box = cv2.boxFilter(img,-1,(3,3),normalize=False)cv2.imshow('FKLB_False',box)
cv2.waitKey(0)
cv2.destroyAllWindows()

在这里插入图片描述

高斯滤波

高斯滤波实则就是正态分布那个图像,也就是按权值进行划分
同样需要给出一个卷积核的大小,然后取平均值,之后在每个卷积核内,离平均值越近的数值权值越大,当然离平均值越远的数值权值越小
cv2.GaussianBlur(img,(5,5),1)

import cv2aussian = cv2.GaussianBlur(img,(5,5),1)cv2.imshow('GSLB',aussian)
cv2.waitKey(0)
cv2.destroyAllWindows()

在这里插入图片描述

中值滤波

在一个卷积核中,选取中位数当成最后处理的结果
cv2.medianBlur(img,5)

import cv2median = cv2.medianBlur(img,5)cv2.imshow('ZZLB',median)
cv2.waitKey(0)
cv2.destroyAllWindows()

在这里插入图片描述

将所有的滤波方式展示在一块

import cv2
import numpy as np#res = np.vstack((blur,aussian,median))#上下展示
res = np.hstack((blur,aussian,median))#左右展示#print(res)cv2.imshow('JZ-GS-ZZ',res)
cv2.waitKey(0)
cv2.destroyAllWindows()

在这里插入图片描述

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

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

相关文章

js删除mysql记录_(DELETEUPDATE)修改、删除数据记录_MySQL

有时,希望除去某些记录或更改它们的内容。DELETE 和 UPDATE 语句令我们能做到这一点。用update修改记录UPDATE tbl_name SET 要更改的列WHERE 要更新的记录这里的 WHERE 子句是可选的,因此如果不指定的话,表中的每个记录都被更新。例如&#…

C++设计模式之Abstract Factory模式

一、功能   提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。 二、结构图类厂最基本的结构示意图如下: 在实际应用中,类厂模式可以扩充到很复杂的情况,如下图所示: 三、优缺点 优点&#xff1…

数字图像处理小练习存档1

小练习的题目: 1、读取一张图,分解RGB三个通道 /************练习1**********************/ int main() {Mat img1 imread("D:\\opencv_picture_test\\miku2.jpg",2|4); //灰度图if (img1.empty()){printf("Could not find the imag…

UIImage 压缩

1.改变图片大小 -(UIImage*)imageWithImage:(UIImage*)image scaledToSize:(CGSize)newSize {// Create a graphics image contextUIGraphicsBeginImageContext(newSize);// Tell the old image to draw in this new context, with the desired// new size[image drawInRect:CG…

06-对图像进行腐蚀操作

形态学中的腐蚀操作一般处理的图像数据为二值的 cv2.erode(img,kernel,iterations 1) kernel表示拿多大的卷积核去腐蚀 iterations表示迭代次数 可以将一些带有毛毛的图像去毛毛化 原图 import cv2 import numpy as npdef show_photo(name,picture):cv2.imshow(name,picture)…

Java BufferedReader skip()方法与示例

BufferedReader类skip()方法 (BufferedReader Class skip() method) skip() method is available in java.io package. skip()方法在java.io包中可用。 skip() method is used to skip the given number of bytes of characters (n_bytes_of_char) from this BufferedReader. s…

mysql gtid binlog_MySQL之-四步实现BinLog Replication升级为GTIDs Replication的代码实例

1、将Master和Slave服务器都设置为read-onlymysql>SET global.read_onlyON;2、将Master与Slave服务器都停下来service mysql stop3、开启GTIDs开启GTIDs需要在master和slave服务器上都配置gtid-mode,log-bin,log-slave-updates,enforce-gtid-consistency(在MySQL 5.6.9之前是…

【记】琐碎

1.GIF载入问题:http://www.cnblogs.com/Lewis/archive/2011/01/17/1937066.html 2.正则分段数字: "12345678945612456".replace(new RegExp((\\d)(?(\\d{3})$),ig),"$1,") 其中用到了正则的后则判断? 3.给legend设定宽度 发现IE下可以 火狐下…

spring对事务的控制 AOP

我解释一下(* com.evan.crm.service.*.*(..))中几个通配符的含义: |第一个 * —— 通配 任意返回值类型| |第二个 * —— 通配 包com.evan.crm.service下的任意class| |第三个 * —— 通配 包com.evan.crm.service下的任意class的任意方法| |第四个 .. —— 通配 方…

Opencv实现利用滑动条来调整阈值

#include <opencv2/opencv.hpp> #include <iostream>using namespace cv; using namespace std; #define WINDOW_NAME "【程序窗口】" //为窗口标题定义的宏 //*--------------------------【练习】利用滑动条来调整阈值-----------------------------…

07-对图像进行膨胀操作

形态学中的膨胀操作即让照片变得更大&#xff0c;与腐蚀操作互为逆运算 cv2.dilate(erosion,kernel,iterations 1) 第一个参数&#xff1a;图像对象名称 第二个参数&#xff1a;卷积核的大小 第三个参数&#xff1a;迭代次数 此时就可与腐蚀操作进行相结合&#xff0c;腐蚀去毛…

Java LocalDate类| parse()方法与示例

LocalDate类parse()方法 (LocalDate Class parse() method) Syntax: 句法&#xff1a; public static LocalDate parse(CharSequence c_seq);public static LocalDate parse(CharSequence c_seq, DateTimeFormatter fmtr);parse() method is available in java.time package. …

Xhtml学习笔记

1. XHTML 是什么&#xff1f; XHTML 指可扩展超文本标签语言&#xff08;EXtensible HyperText Markup Language&#xff09;。 XHTML 的目标是取代 HTML。 XHTML 与 HTML 4.01 几乎是相同的。 XHTML 是更严格更纯净的 HTML 版本。 XHTML 是作为一种 XML 应用被重新定义的 HTML…

08-开运算和闭运算

开运算和闭运算实则就是将腐蚀操作和膨胀操作结合而已&#xff0c;也就是个先后循序罢了 开运算&#xff1a;先腐蚀再膨胀 闭运算&#xff1a;先膨胀再腐蚀 cv2.morphologyEx(img_open,cv2.MORPH_OPEN,kernel) cv2.morphologyEx(img_close,cv2.MORPH_CLOSE,kernel) 第一个参数…

连通域标记——实现硬币自动计件

前言 在自动计算图像中有几枚硬币的任务中&#xff0c;分离出前景和背景后是否就可以马上实现自动计件&#xff0c;如果可以&#xff0c;如何实现&#xff1f;如果不可以&#xff0c;为什么&#xff1f; 答案是否定的。二值化之后我们的得到的只是前景总像素的多少&#xff0c…

Storm资料汇总

一、Storm集群安装部署 网上关于storm集群部署都大同小异。 Storm下载地址&#xff1a;http://storm-project.net Storm项目地址&#xff1a;https://github.com/nathanmarz/storm 目前的版本不支持ZooKeeper3.4.5版本&#xff0c;而支持ZooKeeper3.3.3版本。 我当时没注意这…

getlong_Java即时类| 带示例的getLong()方法

getlong即时类getLong()方法 (Instant Class getLong() method) getLong() method is available in java.time package. getLong()方法在java.time包中可用。 getLong() method is used to get the value as long for the given temporal field from this Instant. getLong()方…

python作品阐述_Python网络编程基础的作品鉴赏-

Python网络编程基础的作品鉴赏Python网络编佳入门图书&#xff01;175个完整&#xff0c;实践出真知&#xff0c;SocketsDNS、Web Service、FTP、Email、SMTP、POP、IMAP、SocketServe、CGI、XML、Forking、数据库客户端、多线程、异步通信……完整涵盖网络编程的方方面面“这可…

09-梯度运算

梯度运算膨胀操作-腐蚀操作&#xff0c;这里的-操作是图像的减法&#xff0c;可不是简单的加减乘除运算 为了更加形象生动&#xff0c;先将膨胀和腐蚀操作的结果进行合并展示&#xff0c;然后再与梯度运算进行比较 cv2.morphologyEx(pie,cv2.MORPH_GRADIENT,kernel) 第一个参数…

JavaScript学习笔记-我的浅显认识

一&#xff1a;什么是javascript? 它是一种基于对象和事件驱动的解释性的安全的与平台无关的免费的浏览器脚本语言。 二&#xff1a;有什么用途&#xff1f; 使表单的验证放在客户端&#xff0c;更快捷反应&#xff0c;增强网页的交互性。设计一些特效&#xff0c;如菜单&…