当前位置: 首页 > news >正文

图像处理之滤波

中值滤波、均值滤波、高斯滤波和双边滤波是常见的图像处理技术,主要用于去噪和图像平滑。低通滤波和高通滤波用于处理图像中的频率成分。它们的主要区别在于它们所允许通过的频率范围。滤波、卷积、去噪、模糊、提取特征是一个意思。

卷积就是两个矩阵的乘法,相同位置的两个元素相乘并加起来:
在这里插入图片描述
矩阵B叫滤波器或卷积核,卷积后得到的矩阵称为特征图。这就是去噪、提取特征的过程。

1. 均值滤波 (Mean Filtering)
原理: 均值滤波通过计算滤波窗口内所有像素的平均值来替代中心像素的值。它是线性滤波的一种。
优点:
实现简单,计算效率高。
能够有效去除均匀分布的噪声(如高斯噪声)。
缺点:
会导致图像模糊,细节丢失,尤其是在边缘和纹理丰富的区域。
对脉冲噪声(如盐和胡椒噪声)效果不佳。

2. 中值滤波 (Median Filtering)
原理: 中值滤波通过计算滤波窗口内所有像素的中值来替代中心像素的值。它是一种非线性滤波器。
优点:
在去除脉冲噪声(如盐和胡椒噪声)时效果显著,能够更好地保护边缘和细节。
相对于均值滤波,对于图像细节的保留更好。
缺点:
计算复杂度高于均值滤波,处理速度较慢。
当滤波窗口尺寸增大时,可能导致模糊,尤其是在噪声较少时,表现接近均值滤波。

3. 高斯滤波 (Gaussian Filtering)
原理: 高斯滤波使用高斯函数作为权重,对滤波窗口内的像素进行加权平均。靠近中心的像素权重更高,远离中心的像素权重较低。
优点:
能够平滑图像,同时保留边缘信息,适用于去除高斯噪声。
具有良好的数学性质,便于理论分析和实现。
缺点:
仍然会造成一定程度的模糊,尤其是在强噪声条件下。
对于脉冲噪声的去除效果不如中值滤波。

4. 双边滤波 (Bilateral Filtering)
原理: 双边滤波结合了空间距离和像素值的相似性,既考虑像素的空间位置,又考虑像素的颜色差异,从而在平滑图像的同时保留边缘信息。
优点:
能够有效去除噪声,同时保留图像的边缘和细节,是一种非常有效的图像平滑方法。
对于非均匀噪声和细节保护效果良好。
缺点:
计算复杂度高,处理速度较慢,尤其是在大图像上。
参数选择(如空间和颜色标准差)对结果影响较大,需要调试。

5 均值迁移滤波(Mean Shift Filtering)
是一种非线性的平滑技术,最初用于图像 segmentation 和目标跟踪。它通过在特征空间中寻找均值移动,从而帮助去除噪声,同时保护图像中重要的结构和边缘。
优点:
能有效去除噪声,同时保留图像的边缘信息。
适用于多种类型的噪声。
缺点:
计算复杂度相对较高,可能较慢。

在细节信息保护方面:
中值滤波在处理脉冲噪声时效果最佳,能够有效保留边缘。
均值滤波适合处理均匀噪声,但容易导致模糊。
高斯滤波在去除高斯噪声时表现良好,但仍会造成模糊。
双边滤波是最优选择之一,能够在去噪的同时保留边缘和细节,但计算代价较高。

在选择滤波方法时,需根据具体的应用场景和噪声类型来决定使用哪种滤波器。

import cv2
import numpy as np
import matplotlib.pyplot as plt# 读取图像
image = cv2.imread('1.png')
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)  # 转换为 RGB 格式# 均值滤波
mean_filtered = cv2.blur(image, (5, 5))# 中值滤波
median_filtered = cv2.medianBlur(image, 5)# 高斯滤波
gaussian_filtered = cv2.GaussianBlur(image, (5, 5), 0)# 均值迁移滤波
meanshift_filtered = cv2.pyrMeanShiftFiltering(image, sp=20, sr=20)# 显示所有结果
plt.subplot(1, 5, 1)
plt.title('Original ')
plt.imshow(image)
plt.axis('off')plt.subplot(1, 5, 2)
plt.title('Mean Filtered')
plt.imshow(mean_filtered)
plt.axis('off')plt.subplot(1, 5, 3)
plt.title('Median Filtered')
plt.imshow(median_filtered)
plt.axis('off')plt.subplot(1, 5, 4)
plt.title('Gaussian Filtered')
plt.imshow(gaussian_filtered)
plt.axis('off')plt.subplot(1, 5, 5)
plt.title('Mean Shift Filtered')
plt.imshow(meanshift_filtered)
plt.axis('off')plt.tight_layout()
plt.show()

低通滤波 (Low-Pass Filtering)
定义: 低通滤波器允许低频信号通过,而抑制高频信号。它通常用于去除图像噪声和细节,使得图像更平滑。
应用: 主要用于图像平滑、去噪等场景。例如,在图像处理应用中,应用低通滤波可以减少细节,从而保留更平滑的视觉效果。

高通滤波 (High-Pass Filtering)
定义: 高通滤波器允许高频信号通过,而抑制低频信号。它通常用于增强图像边缘和细节。
应用: 主要用于图像增强,可以帮助加强图像中的边缘和细节。

import cv2
import numpy as np
import matplotlib.pyplot as plt# 读取图像并转换为灰度图像
img_man = cv2.imread('f:/ai/groceries.jpg', 0)
plt.figure(figsize=(12, 6))# 显示原图
plt.subplot(1, 3, 1)
plt.imshow(img_man, cmap='gray')
plt.title('Original Image')
plt.axis('off')# -------------------------------低通滤波
# 低通滤波
rows, cols = img_man.shape
crow, ccol = rows // 2, cols // 2  # 中心点# 创建低通滤波器掩膜
lowpass_mask = np.zeros((rows, cols), np.uint8)
r = 30  # 半径
cv2.circle(lowpass_mask, (ccol, crow), r, 1, thickness=-1)  # 在中心画一个圆形# 进行傅里叶变换,并应用低通掩膜
f1 = np.fft.fft2(img_man)
f1shift = np.fft.fftshift(f1)
f1low = f1shift * lowpass_mask  # 应用低通滤波# 逆变换回到空间域
f2low = np.fft.ifftshift(f1low)
img_lowpass = np.fft.ifft2(f2low)
img_lowpass = np.abs(img_lowpass)  # 取幅值# 归一化
img_lowpass = (img_lowpass - np.min(img_lowpass)) / (np.max(img_lowpass) - np.min(img_lowpass))# 显示低通滤波结果
plt.subplot(1, 3, 2)
plt.imshow(img_lowpass, cmap='gray')
plt.title('Low Pass Filtered')
plt.axis('off')# --------------------------------高通滤波
# 高通滤波
# 创建高通滤波器掩膜
highpass_mask = np.ones((rows, cols), np.uint8)
cv2.circle(highpass_mask, (ccol, crow), r, 0, thickness=-1)  # 在中心画一个圆形,值为0表示低频# 进行傅里叶变换,并应用高通掩膜
f1high = f1shift * highpass_mask  # 应用高通滤波# 逆变换回到空间域
f2high = np.fft.ifftshift(f1high)
img_highpass = np.fft.ifft2(f2high)
img_highpass = np.abs(img_highpass)  # 取幅值# 归一化
img_highpass = (img_highpass - np.min(img_highpass)) / (np.max(img_highpass) - np.min(img_highpass))# 显示高通滤波结果
plt.subplot(1, 3, 3)
plt.imshow(img_highpass, cmap='gray')
plt.title('High Pass Filtered')
plt.axis('off')# 显示所有结果
plt.tight_layout()
plt.show()

在这里插入图片描述

代码说明
1、图像读取: 使用 cv2.imread() 读取图像并转换为灰度图。
2、低通滤波:
创建一个低通掩膜(mask),使用 cv2.circle() 在掩膜中创建一个圆形区域,该区域中的值设置为 1,表示保留。
对图像进行傅里叶变换
应用低通掩膜
进行逆变换
取反变换结果的幅值,并进行归一化处理
3、高通滤波:
创建一个高通掩膜(mask),通过在掩膜中心填充一个圆形(值为 0),这个掩膜只保留高频成分(图像的边缘和细节),掩膜中心的 值被设置为 0。以抑制低频成分。
进行傅里叶变换: np.fft.fft2(img_man) 计算图像的二维傅里叶变换,频域变换将图像的空间信息转化为频率信息。
应用高通掩膜:将掩膜应用到频域图像上,去除低频信息。
逆变换: 使用 np.fft.ifftshift() 和 np.fft.ifft2() 进行逆变换,恢复回空间域。
处理复数输出: 反变换后,结果是复数,因此使用 np.abs() 来获取复数的幅度。
进行归一化处理
4结果显示: 将原图、低通滤波后的结果和高通滤波后的结果一起显示。

使用 Scharr 和拉普拉斯算子来进行边缘检测

# -*- coding: utf-8 -*-
import cv2
import numpy as npimg = cv2.imread('f:/ai/groceries.jpg')# 沙尔算子y方向边缘
d1 = cv2.Scharr(img, cv2.CV_64F, 1, 0)
# 沙尔算子x方向边缘
d2 = cv2.Scharr(img, cv2.CV_64F, 0, 1)# dst = d1 + d2
dst = cv2.add(d1, d2)# 拉普拉斯
ldst = cv2.Laplacian(img, cv2.CV_64F, ksize=5)cv2.imshow('img', img)
cv2.imshow('d1', d1)
cv2.imshow('d2', d2)
cv2.imshow('dst', dst)cv2.imshow('Laplacian', ldst)key = cv2.waitKey(0) & 0xff
if key == ord('q'):cv2.destroyAllWindows()

相关文章:

图像处理之滤波

中值滤波、均值滤波、高斯滤波和双边滤波是常见的图像处理技术,主要用于去噪和图像平滑。低通滤波和高通滤波用于处理图像中的频率成分。它们的主要区别在于它们所允许通过的频率范围。滤波、卷积、去噪、模糊、提取特征是一个意思。 卷积就是两个矩阵的乘法&#…...

html基础-认识html

1.什么是html html是浏览器可以识别的的标记语言&#xff0c;我们在浏览器浏览的网页就是一个个的html文档 <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>认识html</title> </head> <body><h1…...

金智塔科技联合浙大人工智能研究所发布全新“智信”可信行业数据空间,共促数字金融创新发展!

由中国计算机学会(CCF)主办&#xff0c;CCF数字金融分会、同济大学、上海立信会计金融学院联合承办&#xff0c;金智塔科技作为金牌合作单位的数字金融领域年度巅峰盛会——首届CCF中国数字金融大会于2024年12月7日在上海成功举办。中国工程院院士蒋昌俊任大会主席&#xff0c;…...

基于单片机的语音识别自动避障小车(论文+源码)

1.系统设计 此次基于单片机的语音识别自动避障小车&#xff0c;以STC89C52单片机作为系统的主控制器&#xff0c;利用超声波模块来实现小车与障碍物距离的测量并通过LCD液晶显示&#xff0c;当距离低于阈值时会通过WT588语音模块进行报警提示&#xff0c;并且小车会后退来躲避…...

使用layui的table提示Could not parse as expression(踩坑记录)

踩坑记录 报错图如下 原因&#xff1a; 原来代码是下图这样 上下俩中括号都是连在一起的&#xff0c;可能导致解析问题 改成如下图这样 重新启动项目&#xff0c;运行正常&#xff01;...

EF Code 多对多表关系建设和Linq 知识点

自引用组织结构树&#xff0c;比如部门、组织 除了根节点&#xff0c;其他节点都有一个父节点&#xff0c;也包含多个子节点&#xff0c;那么在定义表结构时&#xff0c;既要申明父表的关系&#xff0c;也要申明子表的关系 EF Code 多对多 builder.ToTable("T_Student&…...

Maven 的下载

目录 1、Maven 官方地址2、下载3、解压4、配置本地仓库 1、Maven 官方地址 https://maven.apache.org/ 2、下载 3、解压 将下载的压缩包解压到任意位置 4、配置本地仓库 在 Maven 的安装目录下新建文件夹&#xff0c;用来当作 Maven 的本地仓库 进入 conf 目录下&#xff…...

VPN模式

拓扑结构 实验图&#xff1a; 路由器router 配置 DHCP配置 需要右键激活 路由器项配置网关 dns项配置ip DNS服务配置 正向区域 选择不允许动态更新 反向区域 创建主机 正向 验证是否创建成功 反向查找区域 输入网段 使用默认名称---不允许动态更新 KALI机的验证 web服务…...

LeetCode 热题 100-两数之和(简单)

1. 两数之和 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出和为目标值 target 的那两个整数&#xff0c;并返回它们的数组下标。你可以假设每种输入只会对应一个答案&#xff0c;并且你不能使用两次相同的元素。 你可以按任意顺序返回答案。…...

【C语言】拆解C语言的编译过程

前言 学习C语言的过程中&#xff0c;涉及到各种各样的关键词&#xff0c;在我们点击编译的时候&#xff0c;都会做什么呢&#xff1f;让我们来拆解一下 C语言的编译过程 C语言的编译过程包括预处理、编译、汇编和链接四个主要步骤。每个步骤都有其特定的任务和输出文件类型&am…...

RabbitMQ中的Work Queues模式

在现代分布式系统中&#xff0c;消息队列&#xff08;Message Queue&#xff09;是实现异步通信和解耦系统的关键组件之一。RabbitMQ 是一个广泛使用的开源消息代理软件&#xff0c;支持多种消息传递模式。其中&#xff0c;Work Queues&#xff08;工作队列&#xff09;模式是一…...

OpenCV圆形标定板检测算法findGrid原理详解

OpenCV的findGrid函数检测圆形标定板的流程如下: class CirclesGridClusterFinder {CirclesGridClusterFinder(const CirclesGridClusterFinder&); public:CirclesGridClusterFinder...

快速理解类的加载过程

当程序主动使用某个类时&#xff0c;如果该类还未加载到内存中&#xff0c;则系统会通过如下三个步骤来对该类进行初始化&#xff1a; 1.加载&#xff1a;将class文件字节码内容加载到内存中&#xff0c;并将这些静态数据转换成方法区的运行时数据结构&#xff0c;然后生成一个…...

monorepo代码管理框架

1. 新建 vue3-component 文件夹 2. 运行pnpm init 3. pnpm i vue typescript 4. 新建.npmrc shamefully-hoisttrue link-workspace-packagestrue 5. ts文件配置 pnpm tsc --init 默认.bin路径下的tsc 6. 新建pnpm-workspace.yaml packages:- packages/** # all packages- p…...

LabVIEW实现蓝牙通信

目录 1、蓝牙通信原理 2、硬件环境部署 3、程序架构 4、前面板设计 5、程序框图设计 6、测试验证 本专栏以LabVIEW为开发平台,讲解物联网通信组网原理与开发方法,覆盖RS232、TCP、MQTT、蓝牙、Wi-Fi、NB-IoT等协议。 结合实际案例,展示如何利用LabVIEW和常用模块实现物联网系…...

R环境配置 以及Debug方法 (VSCode, conda, 远程R)

生物信息学中的R环境配置 以及Debug方法 开始设置1、建议使用VSCode conda 远程R2、 VSCode配置安装插件安装好插件后&#xff0c;远程设置链接成功后&#xff0c;设置项目 3、 linux conda 和 远程R配置4、VScode 远程访问R环境下面配置远程R 5、开始Debug新建个R文件&#…...

ComfyUI 与 Stable Diffusion WebUI 的优缺点比较

ComfyUI与Stable Diffusion WebUI都是AI绘画领域比较知名两款产品&#xff0c;两者存在诸多差异&#xff0c;本篇就带你熟悉二者的优劣&#xff0c;方便自己做出决策。 界面与操作 ComfyUI&#xff1a;界面简洁直观&#xff0c;通过节点和连线的方式构建工作流&#xff0c;用…...

Ubuntu 系统下安装 Nginx

一、Nginx是什么 是一个高性能的 HTTP 和反向代理 web 服务器&#xff0c;同时也提供了 IMAP/POP3/SMTP 服务。 是一款轻量级的 Web 服务器/反向代理服务器及电子邮件&#xff08;IMAP/POP3&#xff09;代理服务器&#xff0c;在BSD-like 协议下发行。其特点是占有内存少&…...

【Qt】drawText字体大小问题探究

背景 软件的一个功能是&#xff1a; 打开图片在图片上绘制序号&#xff0c;序号的样式是圆圈内包含数字将带有序号的图片打印出来 实现思路也很简单&#xff0c;在屏幕上显示时重写paintEvent函数&#xff0c;利用QPainter完成图片和序号的绘制。打印时只需要将QPainter对应…...

视频汇聚平台:Liveweb视频流媒体平台视频监控系统解决方案

数字化技术在安防领域的广泛应用已经成为公安等重要执法部门的重要趋势&#xff0c;主要得益于无线网络通信技术和计算机技术的快速进步。传统的视频监控系统存在诸多局限&#xff0c;例如只能进行现场监视&#xff0c;报警信息传输简单&#xff0c;无法远距离传输视频信号&…...

Android开发中有关MediaPlayer 播放.mp3文件使用之一

我们在项目中&#xff0c;经常会添加一个简单的语音提示&#xff1a;我们通常会选择MediaPlayer播放SD文件中的.MP3文件或者存到assets下的.mp3文件。正常使用流程如下&#xff1a; 一、播放assets下的.mp3文件 根据assets获取需要播放的文件名 getApplicationContext().getAs…...

Leetcode经典题11--加油站

题目描述 在一条环路上有 n 个加油站&#xff0c;其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车&#xff0c;从第 i 个加油站开往第 i1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发&#xff0c;开始时油箱为空。 给定两个整数数组 gas 和…...

23种设计模式之状态模式

目录 1. 简介2. 代码2.1 State &#xff08;定义抽象状态接口&#xff09;2.2 StartState &#xff08;实现具体状态类&#xff09;2.3 EndState &#xff08;实现具体状态类&#xff09;2.4 Context &#xff08;定义上下文类&#xff09;2.5 Test &#xff08;测试类&#xf…...

大模型的构建与部署(3)——数据标注

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl1. 数据标注的重要性 1.1 增强数据可解释性 数据标注通过为原始数据添加标签或注释,显著增强了数据的可解释性。在机器学习和深度学习领域,模型的训练依赖于大量带标签的数据。这些标签不仅帮助…...

windows11 专业版 docker desktop 安装指南

家庭中文版需升级专业版&#xff0c;家庭版没有hyper-v。 开始运行optionalfeatures.exe打开windows功能 安装wsl2 步骤 1 - 启用适用于 Linux 的 Windows 子系统步骤 2 - 检查运行 WSL 2 的要求步骤 3 - 启用虚拟机功能步骤 4 - 下载 Linux 内核更新包 步骤 1 - 启用适用于 L…...

mixed strategy

混合策略和期望收益的基本概念 在博弈论中&#xff0c;混合策略是指参与者以一定的概率选择不同的纯策略。期望收益则是在考虑这些概率的情况下&#xff0c;参与者所能获得的平均收益。 以“石头 - 剪刀 - 布”游戏为例 游戏规则回顾 石头胜剪刀&#xff0c;剪刀胜布&#xff0…...

登上Nature和CVPR!小波变换+UNet上大分!

最近UNet又出现了不少新成果&#xff0c;结合小波变换屡登Nature子刊和CVPR24&#xff01;比如三路径U-Net模型&#xff0c;利用Haar小波变换大幅提高系统整体性能&#xff1b;再比如利用小波变换的特性来改进U-Net架构的MLWNet网络&#xff0c;性能猛超SOTA&#xff01; 原因…...

2_使用 HTML5 Canvas API (1) --[HTML5 API 学习之旅]

1.在页面中加入 canvas 在网页中加入 <canvas> 元素可以通过简单的 HTML 和 JavaScript 实现。以下是两个具体的示例&#xff0c;展示了如何在页面中使用 <canvas> 绘制图形和处理用户交互。 示例 1: 简单的静态绘图 这个例子展示了一个基础的 <canvas> 应…...

梳理你的思路(从OOP到架构设计)_UML应用:业务内涵的分析抽象表达01

目录 1、 系统分析(System Analysis) 系統分析的涵意 业务(领域)知识 业务内涵 业务(领域)概念 2、举例(一) &#xff1a;东方传说 UML与建模工具 1、 系统分析(System Analysis) 系統分析的涵意 许多人在学习系统分析(System Analysis)时&#xff0c;常迷失于其字面上…...

redis集群安装部署 redis三主三从集群

redis集群安装部署 redis三主三从集群 1、下载redis2、安装redis集群 三主三从3、配置redis开机自启动3.1、建立启动脚本3.2、复制多份redis启动脚本给集群使用3.3、添加可执行权限3.4、配置开机自启动 1、下载redis 本次redis安装部署选择当前最新的稳定版本7.4.1 下载链接: …...

【PHP】部署和发布PHP网站到IIS服务器

欢迎来到《小5讲堂》 这是《PHP》系列文章&#xff0c;每篇文章将以博主理解的角度展开讲解。 温馨提示&#xff1a;博主能力有限&#xff0c;理解水平有限&#xff0c;若有不对之处望指正&#xff01; 目录 前言安装PHP稳定版本线程安全版解压使用 PHP配置配置文件扩展文件路径…...

大模型qiming面试内容整理-系统设计与架构

在大模型和机器学习相关岗位的面试中,系统设计与架构的考察通常会涉及如何设计一个可扩展、可靠且高效的机器学习系统,特别是在面对大规模数据和复杂模型时。这一部分的考察不仅测试候选人对机器学习和深度学习的理解,还会评估其如何设计实际生产环境中的系统来满足需求。以…...

【Reading Notes】Favorite Articles from 2024

文章目录 1、January2、February3、March4、April5、May6、June7、July8、August9、September10、October11、November12、December 1、January 2、February 3、March Sora外部测试翻车了&#xff01;3个视频都有Bug&#xff08; 2024年03月01日&#xff09; 不仔细看还真看不…...

Qt-chart 画柱状图

记录下&#xff0c;记录下 效果图 直接上代码 // 创建柱状系列 QBarSeries *series new QBarSeries();// 创建数据集 QBarSet *setTar new QBarSet(("tar"));QBarSet *setReality new QBarSet(("reality"));//添加柱状数据*setTar << 1<<…...

【深入理解Java线程池】

深入理解Java线程池 Java线程池是Java并发编程中的一个重要概念&#xff0c;它提供了一种管理和复用线程的机制&#xff0c;可以显著减少创建和销毁线程的开销&#xff0c;提高系统的响应速度和吞吐量。以下是对Java线程池的详细解析&#xff1a; 一、线程池的基本概念 线程…...

honle电源控制器维修UV灯高压电源EVG EPS200

UV电源控制器维修&#xff1b;honle电源维修&#xff1b;UV电源维修MUC-Steuermodul 2 LΛmpen D-82166 主要维修型号&#xff1a; EPS 60/120、EPS 100、EPS200、EPS 220、EPS 340、LED Spot 100、UV2000F HONLE UV灯高压电源控制器故障包括&#xff1a; 1、电压不稳&#…...

java中List集合小练习

题目&#xff1a;将1~100之间所有正整数存放在一个List集合中&#xff0c;并将集合索引位置时10的对象从集合中移除。 代码&#xff1a; import java.util.ArrayList; import java.util.List;public class ListTest {public ListTest(){List<Integer> listnew ArrayLis…...

【STM32练习】基于STM32的PM2.5环境监测系统

一.项目背景 最近为了完成老师交付的任务&#xff0c;遂重制了一下小项目用STM32做一个小型的环境监测系统。 项目整体示意框图如下&#xff1a; 二.器件选择 单片机&#xff08;STM32F103&#xff09;数字温湿度模块&#xff08;DHT11&#xff09;液晶显示模块&#xff08;0.8…...

JS哪些操作会造成内存泄露?

在 JavaScript 中&#xff0c;内存泄露是指程序不再使用的内存没有被释放&#xff0c;从而导致内存的持续增长&#xff0c;最终可能导致性能下降或应用崩溃。以下是一些常见的可能导致内存泄露的操作和情况&#xff1a; 1. 全局变量 如果不小心创建了全局变量&#xff0c;可能…...

《知识拓展 · 统一建模语言UML》

&#x1f4e2; 大家好&#xff0c;我是 【战神刘玉栋】&#xff0c;有10多年的研发经验&#xff0c;致力于前后端技术栈的知识沉淀和传播。 &#x1f497; &#x1f33b; CSDN入驻不久&#xff0c;希望大家多多支持&#xff0c;后续会继续提升文章质量&#xff0c;绝不滥竽充数…...

GNSS 全球卫星导航系统(Global Navigation Satellite System): 卫星授时

文章目录 引言I GNSSGNSS三大核心能力卫星系统、区域性的系统以及增强系统II 卫星授时GNSS是如何实现授时优势引言 GNSS指的是全球卫星导航系统,是能在全球范围内提供导航服务的卫星导航系统的通称。 美国GPS、俄罗斯GLONASS、中国北斗卫星导航系统和欧洲GALILEO,是联合国全…...

【数据结构】循环队列原理与代码

理论 存在的意义&#xff1a; 将顺序队列从逻辑上视为一个环。解决“假溢出”&#xff08;出队入队连续操作后两个指针均到数组末端maxsize-1处&#xff0c;虽然队里没有元素但无法让元素进队&#xff09;。两种定义 1.题目是队列非空时队头指针和队尾指针分别指向队头元素和队…...

Kettle Doris Plugin编译过程

起因 公司的数据中台产品用的doris作为数据仓库&#xff0c;用kettle作为etl引擎&#xff0c;但是表输出组件太慢了。偶然有一天发现doris提供了kettle组件&#xff0c;但是需要自己编译&#xff0c;于是就开始自己编译。 坑 因为kettle的依赖包在m2&#xff08;中央仓库&am…...

Day10 苍穹外卖项目 订单搜索、各个状态的订单统计、查询订单详细、接单、拒单、取消订单、派送订单、完成订单

目录 1.订单搜索 1.1 需求分析和设计 1.2 接口设计 1.2 代码实现 1.2.1 admin/OrderController 1.2.2 OrderService 1.2.3 OrderServiceImpl 2.各个状态的订单数量统计 2.1 需求分析和设计 2.2 接口设计 2.3 代码实现 2.3.1 admin/OrderController 2.3.2 OrderService 2.3.3 Or…...

你知道OSI参考模型是什么吗?

你知道OSI参考模型是什么吗&#xff1f; 一. OSI模型图解二. OSI七层模型三. OSI模型的特点四. OSI模型与TCP/IP模型的对比五. 总结 前言 这是我在这个网站整理的笔记,有错误的地方请指出&#xff0c;关注我&#xff0c;接下来还会持续更新。 作者&#xff1a;神的孩子都在歌唱…...

《开源数据:开启信息共享与创新的宝藏之门》

《开源数据&#xff1a;开启信息共享与创新的宝藏之门》 一、开源数据概述&#xff08;一&#xff09;开源数据的定义&#xff08;二&#xff09;开源数据的发展历程 二、开源数据的优势&#xff08;一&#xff09;成本效益优势&#xff08;二&#xff09;灵活性与可定制性&…...

机器学习之学习范式

机器学习的四种主要范式分别是&#xff1a;监督学习、非监督学习、强化学习和半监督学习。以下是每种范式的详细介绍&#xff1a; 1. 监督学习&#xff08;Supervised Learning&#xff09; 定义&#xff1a; 通过已标注的数据训练模型&#xff0c;以预测或分类未知数据。 目…...

计算机网络技术基础:5.数据通信系统

一、数据通信的基本概念 1.信息 信息是对客观事物的运动状态和存在形式的反映&#xff0c;可以是客观事实的形态、大小、结构、性能等描述&#xff0c;也可以是客观事物与外部之间的联系。信息的载体可以是数字、文字、语音、图形和图像等。计算机及其外围设备产生和交换的信息…...

ubuntu下anconda装pytorch

1、禁用nouveau sudo vim /etc/modprobe.d/blacklist.conf 在文件最后部分插入以下两行内容 blacklist nouveau options nouveau modeset0 更新系统 sudo update-initramfs -u 重启系统 2、装nvidia驱动 卸载原来驱动 sudo apt-get remove nvidia-* &#xff08;若安装…...

【深入理解MySQL索引】

深入理解MySQL索引 MySQL索引是一种数据结构&#xff0c;用于帮助快速查找和检索数据库表中的数据。以下是对MySQL索引的详细解释&#xff0c;并附有相应的代码示例以加深理解。 一、索引的原理及作用 原理&#xff1a;索引是以数据库表中的“列”为维度建立的&#xff0c;通…...