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

kaggle竞赛 | 计算机视觉 | 数字图像基础操作

目录

  • cv2基本操作
  • 图片哈希
  • 图像数据扩展
    • 无监督数据扩展方法
    • 监督式数据扩展方法

cv2基本操作

import numpy as np
import matplotlib.pyplot as plt
import cv2img = cv2.imread('cat.jpeg')
plt.imshow(img)

在这里插入图片描述

img = cv2.imread('cat.jpeg')
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
plt.imshow(img)

BGR2RGB,将BGR转化为RGB
在这里插入图片描述
转化为灰度图

img = cv2.imread('cat.jpeg')
img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
plt.imshow(img,cmap='gray')

在这里插入图片描述

转化为HSV图像

H代表色色调,用角度度量,取值范围为0°-360°。从红色开始安逆时针方向计算,红色为0度,绿色为120度,蓝色为240度。
S代表饱和度,饱和度S表示颜色接近光谱色的程度。一种颜色,可以看成是某种光谱色与白色混合的结果。其中光谱色所占的比例越大,颜色越接近光谱色,颜色的饱和度也就越高。饱和度高,颜色就越深越艳。
V代表明度。明度表示颜色明亮的程度,对于光源色,明度值与发光体的亮度有关;对于物体色,明度值和物体的透射比和反色比有关。通常取值范围为0%(黑)到100%(白)。

RGB

RGB 是我们接触最多的颜色空间,由三个通道表示一幅图像,分别为红色®,绿色(G)和蓝色(B)。这三种颜色的不同组合可以形成几乎所有的其他颜色。
RGB 颜色空间是图像处理中最基本、最常用、面向硬件的颜色空间,比较容易理解。
RGB 颜色空间利用三个颜色分量的线性组合来表示颜色,任何颜色都与这三个分量有关,而且这三个分量是高度相关的,所以连续变换颜色时并不直观,想对图像的颜色进行调整需要更改这三个分量才行。

img = cv2.imread('cat.jpeg')
img = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
plt.imshow(img,cmap='gray')

在这里插入图片描述
添加滤波器,类似于卷积
不同的kernel,得到的图片效果不同
此时的kernel_sharpening会使图片更具有细节

img = cv2.imread('cat.jpeg')
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)plt.figure(figsize=(20, 20))
plt.subplot(1, 2, 1)
plt.imshow(img)kernel_sharpening = np.array([[-1,-1,-1], [-1,9,-1], [-1,-1,-1]])
sharpened = cv2.filter2D(img, -1, kernel_sharpening)plt.subplot(1, 2, 2)
plt.title("Image Sharpening")
plt.imshow(sharpened)

在这里插入图片描述

erode操作,忽视部分细节

img = cv2.imread('cat.jpeg')
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)plt.figure(figsize=(20, 20))
plt.subplot(1, 2, 1)
plt.title("Original")
plt.imshow(img)# Let's define our kernel size
kernel = np.ones((5,5), np.uint8)# Now we erode
erosion = cv2.erode(img, kernel, iterations = 1)plt.subplot(1, 2, 2)
plt.title("Erosion")
plt.imshow(erosion)

在这里插入图片描述
提取图片线条,边缘检测

img = cv2.imread('cat.jpeg')
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
height, width,_ = img.shape# X角度线条
sobel_x = cv2.Sobel(img, cv2.CV_64F, 0, 1, ksize=5)
# Y角度线条
sobel_y = cv2.Sobel(img, cv2.CV_64F, 1, 0, ksize=5)plt.figure(figsize=(20, 20))# 原始线条
plt.subplot(3, 2, 1)
plt.title("Original")
plt.imshow(img)plt.subplot(3, 2, 2)
plt.title("Sobel X")
plt.imshow(sobel_x)plt.subplot(3, 2, 3)
plt.title("Sobel Y")
plt.imshow(sobel_y)sobel_OR = cv2.bitwise_or(sobel_x, sobel_y)plt.subplot(3, 2, 4)
plt.title("sobel_OR")
plt.imshow(sobel_OR)# 拉普拉斯算子  边缘检测
laplacian = cv2.Laplacian(img, cv2.CV_64F)plt.subplot(3, 2, 5)
plt.title("Laplacian")
plt.imshow(laplacian)# Canny()边缘检测
canny = cv2.Canny(img, 50, 120)plt.subplot(3, 2, 6)
plt.title("Canny")

调整图片尺寸和大小

img = cv2.imread('cat.jpeg')
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)plt.figure(figsize=(20, 20))plt.subplot(2, 2, 1)
plt.title("Original")
plt.imshow(img)# 3/4图片大小
image_scaled = cv2.resize(img, None, fx=0.75, fy=0.75)plt.subplot(2, 2, 2)
plt.title("Scaling - Linear Interpolation")
plt.imshow(image_scaled)# 2倍图片大小
img_scaled = cv2.resize(img, None, fx=2, fy=2, interpolation = cv2.INTER_CUBIC)plt.subplot(2, 2, 3)
plt.title("Scaling - Cubic Interpolation")
plt.imshow(img_scaled)# 调整图片宽高
img_scaled = cv2.resize(img, (900, 400), interpolation = cv2.INTER_AREA)plt.subplot(2, 2, 4)
plt.title("Scaling - Skewed Size")
plt.imshow(img_scaled)

选取图片的部分区域

img = cv2.imread('cat.jpeg')
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)plt.figure(figsize=(20, 20))plt.subplot(2, 2, 1)
plt.title("Original")
plt.imshow(img)height, width = img.shape[:2]# 让我们获取起始像素坐标(裁剪矩形的左上角)
start_row, start_col = int(height * .25), int(width * .25)# 让我们获取起始像素坐标(裁剪矩形的右下角)
end_row, end_col = int(height * .75), int(width * .75)# 只需使用索引即可裁剪出所需的矩形
cropped = img[start_row:end_row , start_col:end_col]plt.subplot(2, 2, 2)
plt.title("Cropped")
plt.imshow(cropped)

在这里插入图片描述
滤波器的kernel全1,是一种模糊操作

img = cv2.imread('cat.jpeg')
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)plt.figure(figsize=(20, 20))plt.subplot(2, 2, 1)
plt.title("Original")
plt.imshow(img)# Creating our 3 x 3 kernel
kernel_3x3 = np.ones((3, 3), np.float32) / 9# We use the cv2.fitler2D to conovlve the kernal with an image 
blurred = cv2.filter2D(img, -1, kernel_3x3)plt.subplot(2, 2, 2)
plt.title("3x3 Kernel Blurring")
plt.imshow(blurred)# Creating our 7 x 7 kernel
kernel_7x7 = np.ones((7, 7), np.float32) / 49blurred2 = cv2.filter2D(img, -1, kernel_7x7)plt.subplot(2, 2, 3)
plt.title("7x7 Kernel Blurring")
plt.imshow(blurred2)

在这里插入图片描述
卷积核越大,越模糊

图片哈希

import imagehash
from PIL import Imageahash = imagehash.average_hash(Image.open("cat.jpeg"))
ahash

在这里插入图片描述

str(ahash)

在这里插入图片描述

图像数据扩展

无监督数据扩展方法

albumentations库 简单实用

from albumentations import (HorizontalFlip, IAAPerspective, ShiftScaleRotate, CLAHE, RandomRotate90,Transpose, ShiftScaleRotate, Blur, OpticalDistortion, GridDistortion, HueSaturationValue,IAAAdditiveGaussianNoise, GaussNoise, MotionBlur, MedianBlur, IAAPiecewiseAffine,IAASharpen, IAAEmboss, RandomContrast, RandomBrightness, Flip, OneOf, Compose, RandomGamma, ElasticTransform, ChannelShuffle,RGBShift, Rotate
)# 图像水平翻转
img = cv2.imread('cat.jpeg')
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)# 水平翻转的概率
aug = HorizontalFlip(p=1)
img_aug = aug(image = img)['image']plt.figure(figsize=(20, 20))
plt.subplot(1, 2, 1)
plt.imshow(img)plt.subplot(1, 2, 2)
plt.imshow(img_aug)

在这里插入图片描述
部分复杂形态变化

img = cv2.imread('cat.jpeg')
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)aug = GridDistortion(p=1)
img_aug = aug(image = img)['image']plt.figure(figsize=(20, 20))
plt.subplot(1, 2, 1)
plt.imshow(img)plt.subplot(1, 2, 2)
plt.imshow(img_aug)

在这里插入图片描述
角度变化

img = cv2.imread('cat.jpeg')
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)aug = ShiftScaleRotate(p=1)
img_aug = aug(image = img)['image']plt.figure(figsize=(20, 20))
plt.subplot(1, 2, 1)
plt.imshow(img)plt.subplot(1, 2, 2)
plt.imshow(img_aug)

在这里插入图片描述

多个数据扩增方法一起运用 Compose方法

img = cv2.imread('cat.jpeg')
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)aug = Compose([ShiftScaleRotate(p=1),HorizontalFlip(p=1),RandomBrightness(p=1)
])
img_aug = aug(image = img)['image']plt.figure(figsize=(20, 20))
plt.subplot(1, 2, 1)
plt.imshow(img)plt.subplot(1, 2, 2)
plt.imshow(img_aug)

在这里插入图片描述

监督式数据扩展方法

在这里插入图片描述

相关文章:

Python内置库:pathlib(文件路径操作)

官方文档: pathlib — Object-oriented filesystem paths 一、基础使用遍历子目录 使用通配符遍历文件 拼接路径 获取标准化后的绝对路径 查询路径常规属性 打开文件from pathlib import Pathprint(1.1 查询指定目录的子目录) p = Path(D:/Envs) print([sub_p for sub_p in p.…...

vue3页面跳转及传参,获参

基于Vue Router的代码 import {useRoute, useRouter} from "vue-router"; const router=useRouter(); const route=useRoute();// 根据地址跳转 router.push(/eweb/test1) // 根据name跳转 router.push({ name: "test1_edit" }) // 传递参数 router.push({…...

Django markdown前端页面渲染

提取目录(方式一) import markdown from markdown.extensions.toc import TocExtensiondef content(request, content_id):content_id = int(content_id)content = Content.objects.get(id=content_id)md = markdown.Markdown(extensions=[markdown.extensions.extra,markdown_…...

spring实验

...

Linux/Golang/glibC系统调用

Linux/Golang/glibC系统调用 本文主要通过分析Linux环境下Golang的系统调用,以此阐明整个流程有时候涉略过多,反而遭到质疑~,写点文章证明自己实力也好Golang系统调用 找个函数来分析 https://pkg.go.dev/os/exec#Cmd.Wait 源码文件在src/os目录下的: exec.go -> exec_u…...

MongoDB基础知识梳理笔记

1、mongodb是什么? MongoDB 是由 C++语言编写的,是一个基于分布式文件存储的开源数据库系统。 在高负载的情况下,添加更多的节点,可以保证服务器性能。 MongoDB 旨在给 WEB 应用提供可扩展的高性能数据存储解决方案。 MongoDB 将数据存储给一个文档,数据结构由键值(key=&g…...

kaggle竞赛 | 计算机视觉 | 数字图像基础操作

目录cv2基本操作图片哈希图像数据扩展无监督数据扩展方法监督式数据扩展方法cv2基本操作 import numpy as np import matplotlib.pyplot as plt import cv2img cv2.imread(cat.jpeg) plt.imshow(img)img cv2.imread(cat.jpeg) img cv2.cvtColor(img, cv2.COLOR_BGR2RGB) pl…...

7. 好客租房-项目日常推进ing

7. 好客租房-项目日常推进ing 本章节不涉及大量内容,主要是为了推荐项目代码日常进度而设置, 包括添加mock接口, 添加更新房源接口, 为系统添加缓存. 7.1 为前端系统提供mock服务 往往在项目开发中, 为实现前后端并行开发,后端需要对前端所有的请求都都进行支持。…...

前同事居然因为 Pycharm 的这个功能,即使离职三年也依然经常被请去喝茶~

大家好,我是 哈士奇 ,一位工作了十年的"技术混子", 致力于为开发者赋能的UP主, 目前正在运营着 TFS_CLUB社区。 💬 人生格言:优于别人,并不高贵,真正的高贵应该是优于过去的自己。💬 &#x1f4e…...

python使用类装饰器生成函数的使用日志

1 什么是类装饰器 在了解类装饰器之前,建议大家先了解装饰器的概念。 装饰器知识快速入门链接 类装饰器是 Python 中的一种特殊类型的装饰器,它是一个类而不是一个函数。与函数装饰器不同,类装饰器可以在运行时接收参数并返回一个可调用的对…...

有关Android的TextView组件的几个问题

文章目录小结问题及解决参考小结 TextView组件与EditText类似,但有一些不同,理论上TextView是只读的。尝试了让TextView组件可以弹出SetError的提示信息,只读,并不能弹出Android软键盘。 问题及解决 如果需要将TextView组件不能…...

Spring核心模块解析—BeanDifinition。

BeanDifinition前言什么是BeanDefinition?为什么要有BeanDefinition?BeanDifinition重点源码总结前言 Spring中的BeanDifinition在Bean的实例化流程中占有着非常重要的角色,如果你不了解BeanDifinition的话,面试或者学习Bean的生…...

【目标跟踪】------deepsort

目前主流的目标跟踪算法都是基于Tracking-by-Detecton策略,即基于目标检测的结果来进行目标跟踪。DeepSORT运用的就是这个策略,上面的视频是DeepSORT对人群进行跟踪的结果,每个bbox左上角的数字是用来标识某个人的唯一ID号。 Deepsort的前身是sort算法,sort算法的核心是卡尔…...

教你一键生成形如Springboot的高大上banner打印效果

背景 今天闲来无聊,想搞一个类似于Springboot项目启动时打印效果,如下图: 问题解决方案 那这个打印效果怎么实现的呢? 其实,对于这个中效果实现起来也是很简单的。毕竟依托于Springboot强大的框架,任何问…...

RESTful的意义及其使用规则

本文参考: https://javaguide.cn/system-design/basis/RESTfulAPI.html 何为 RESTful API? GET /classes:列出所有班级 POST /classes:新建一个班级RESTful API 可以让你看到 URLHttp Method 就知道这个 URL 是干什么的&…...

Linux产生死锁的必要条件和常见的锁种类

目录前言产生死锁的4个必要条件预防(解决)死锁Linux常见的锁互斥锁(普通锁)自旋锁互斥锁和自旋锁小结递归锁读写锁乐观锁与悲观锁乐观锁和悲观锁小结其他锁(了解)前言 之前面试的时候,有面试官问我产生死锁的(4个)必要条件,这个我之前有了解过&#xff…...

【HBase入门】8. HBase Java编程(2)——创建表、插入数据、删除数据

前言 本文是HBase Java编程(2)——创建表、插入数据、删除数据。 需求一:使用Java代码创建表 创建一个名为WATER_BILL的表,包含一个列蔟C1。 实现步骤: 1.判断表是否存在——存在,则退出 2.使用TableDe…...

【初识数据库】进入数据库的大门+数据库基本操作

前言: 大家好,我是良辰丫🍓🍓🍓,这个专栏我将带领大家去探索数据库的汪洋大海,我主要使用的数据库软件是MySQL,数据库软件大同小异,嘿嘿嘿,废话不多说&#x…...

Python Flask 框架设置响应头,一篇文章学明白

flask 响应头设置📖 导读📖 Python Flask 设置响应头🎉 response.headers 属性🎉 flask.abort() 函数返回特定状态码📖 Flask 中可设置的响应头参数📖 其他关于响应头的配置🎁 使用中间件&#…...

阿里“云开发“小程序(uniCould)

博主ps: 网上资料少的可怜,哎,腾讯云涨价了,论服务器,我肯定选的阿里,再着你们对比下unicould的报价就知道了,如果有钱就另当别论了。 所以这片博文,博主试过之后,先抛出…...

Python装饰器使用方法详解

文章目录1 装饰器背景知识1.1 基本概念1.2 应用场景2 简单的装饰器代码3 使用装饰器记录函数执行次数4 带参数的装饰器5 装饰器处理有返回值的函数1 装饰器背景知识 1.1 基本概念 装饰器(Decorator)是 Python 中一种函数或类,用来修饰其他函…...

【Leetcode每日一题】69. x 的平方根/Sqrt(x)|二分查找---day3

博主简介:努力学习的预备程序媛一枚~博主主页: 是瑶瑶子啦所属专栏: LeetCode每日一题–进击大厂 目录题目描述题目分析:代码分析:题目描述 链接: 69. x 的平方根/Sqrt(x) 给你一个非负整数 x ,计算并返回 x 的 算术…...

2023.1完整版:适合的网盘,各大网盘对比测试,速度,安全性,可预计的未来

在网上看到过网盘对比,但发现还是不全,有时还是需要自行测试,所以这里我就给大家列出所有的网盘,也包括一些类似于网盘的平台: 注意:这里统计的平台都是至少要满足可以上传文件的网盘,并且包含个…...

【编程入门】开源记事本(安卓版)

背景 前面已输出多个系列: 《十余种编程语言做个计算器》 《十余种编程语言写2048小游戏》 《17种编程语言10种排序算法》 《十余种编程语言写博客系统》 《十余种编程语言写云笔记》 本系列对比云笔记,将更为简化,去掉了网络调用&#xff0…...

Python流程控制语句之循环语句

上一篇:Python流程控制语句之选择语句 文章目录前言一、while 循环二、for 循环1. 进行数值循环2. 遍历字符串三、循环嵌套总结前言 生活中很多问题都无法一次解决,就像谚语所说:罗马不是一天建成的。一些事物必须周而复始地运转才能保证其存…...

17种编程语言+10种排序算法

开源地址 https://gitee.com/lblbc/simple-works/tree/master/sort 覆盖语言:C、C、C#、Java、Kotlin、Dart、Go、JavaScript(JS)、TypeScript(TS)、ArkTS、swift、PHP。 覆盖平台:安卓(Java、Kotlin)、iOS(SwiftUI)、Flutter(Dart)、Window桌面(C#)、前…...

【JavaSE专栏8】运算符、表达式和语句

作者主页:Designer 小郑 作者简介:Java全栈软件工程师一枚,来自浙江宁波,负责开发管理公司OA项目,专注软件前后端开发(Vue、SpringBoot和微信小程序)、系统定制、远程技术指导。CSDN学院、蓝桥云…...

【c语言进阶】常见的静态通讯录

🚀write in front🚀 📜所属专栏:c语言学习 🛰️博客主页:睿睿的博客主页 🛰️代码仓库:🎉VS2022_C语言仓库 🎡您的点赞、关注、收藏、评论,是对我…...

27. 作用域

1. 定义 作用域就是一个 python 程序可以直接访问命名空间的正文区域。 在一个 python 程序中,直接访问一个变量,会从内到外依次访问所有的作用域直到找到,否则会报未定义的错误。 python 中,程序的变量并不是在哪个位置都可以访…...

笔试题-2023-华为-数字芯片【纯净题目版】

回到首页:2023 数字IC设计秋招复盘——数十家公司笔试题、面试实录 推荐内容:数字IC设计学习比较实用的资料推荐 题目背景 笔试时间:2022.07.29应聘岗位:数字IC设计题目评价 难易程度:★★★★☆知识覆盖:★★★★☆超纲范围:★☆☆☆☆值得一刷:★★★★☆文章目录 单…...

缓存失效问题和分布式锁引进

缓存失效问题 先来解决大并发读情况下的缓存失效问题; 1、缓存穿透  缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中,将去查询数据库,但是数 据库也无此记录,我们没有将这次查询的 null 写入缓存&#x…...

千峰学习【Ajax】总结

1.同步和异步 2.Ajax状态码 3.创建对象&#xff0c;发送请求 <script>//1.创建XHR&#xff1a; new XMLHttpRequest():var xhr new XMLHttpRequest();// console.log(xhr);//2&#xff0c;配置open(请求方式&#xff0c;请求地址&#xff0c;是否异步(默认为异步)) loc…...

主流的操作系统(带你快速了解)

&#x1f4dc; “作者 久绊A” 专注记录自己所整理的Java、web、sql等&#xff0c;IT技术干货、学习经验、面试资料、刷题记录&#xff0c;以及遇到的问题和解决方案&#xff0c;记录自己成长的点滴。 &#x1f341; 操作系统【带你快速了解】对于电脑来说&#xff0c;如果说…...

【时间复杂度和空间复杂度】

1.时间复杂度时间复杂度的定义&#xff1a;在计算机科学中&#xff0c;算法的时间复杂度是一个数学函数&#xff0c;它定量描述了该算法的额外运行时间。一个算法执行所耗费的时间&#xff0c;从理论上说&#xff0c;是不能算出来的&#xff0c;只有你把你的程序放在机器上跑起…...

GPU虚拟化(留坑)

文章内容大程度参考B站王利明老师对《GPU虚拟化技术分享》的演讲&#xff1a;https://b23.tv/uQKBpcK GPU 有什么用&#xff1f; GPU可以用于图形渲染&#xff0c;也能够用于高性能计算和编解码等场景。 图&#xff1a;GPU 的典型软件架构&#xff08;不含虚拟化&#xff09; …...

排列的时候如何避免重复?

全排列问题&#xff1a;https://leetcode.cn/problems/permutations/submissions/全排列进阶&#xff08;有重复数字&#xff09;&#xff1a;https://leetcode.cn/problems/permutations-ii/solution/第一个全排列问题&#xff0c;经过千辛万苦终于理解了&#xff0c;于是来到…...

还在为ElementUI的原生校验方式苦恼吗,快用享受element-ui-verify插件的快乐吧(待续)

element-ui-verify 本文章意在介绍element-ui-verify插件使用&#xff0c;以及对比elementUI原生校验方式&#xff0c;突显该插件用少量代码也能实现原生的校验效果甚至更好。 1.先观察一个示例 <template><d2-container><el-form :model"ruleForm&qu…...

读书笔记:mini-batch学习 ← 斋藤康毅

如果以全部数据为对象求损失函数的和&#xff0c;则计算过程需要花费较长的时间。因此&#xff0c;我们从全部数据中选出一部分&#xff0c;作为全部数据的“近似”。这种学习方式称为mini-batch学习。 下面给出了从MNIST数据集的训练数据中随机抽取10笔数据的代码。【mini-bat…...

基于微信小程序的新生自助报到系统小程序

文末联系获取源码 开发语言&#xff1a;Java 框架&#xff1a;ssm JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7/8.0 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.3.9 浏览器…...

Python ·信用卡欺诈检测【Catboost】

Python 信用卡欺诈检测【Catboost】 提示&#xff1a;前言 Python 信用卡欺诈检测 提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录Python 信用卡欺诈检测【Catboost】前言一、导入包二、加载数据三、数据可视化四、…...

【JavaEE初阶】第六节.多线程 (基础篇 )线程安全问题(下篇)

前言 一、内存可见性 二、内存可见性的解决办法 —— volatile关键字 三、wait 和notify 关键字 3.1 wait() 方法 3.2 notify() 方法 3.3 notify All() 方法 3.4 wait 和 sleep 的对比 总结 前言 本节内容接上小节有关线程安全问题&#xff1b;本节内容我们将介绍有关…...

JAVA练习30

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 前言 一、题目-加一 1.题目描述 2.思路与代码 2.1 思路 2.2 代码 总结 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 1月25日练习内容 …...

辗转相除以及辗转相减法

文章目录前言辗转相除法&#xff08;又名欧几里算法&#xff09;辗转相减法&#xff08;又名更相减损法&#xff09;原始辗转相减法改版辗转相减法&#xff08;减的是指数&#xff09;参考文章前言 在学习Acwing c蓝桥杯辅导课第八讲数论-AcWing 1223. 最大比例时有使用到求指…...

Java基础 IO

IO流 IO流 什么是IO流&#xff1f; 存储和读取数据的解决方案 I&#xff1a;input O&#xff1a;output 流&#xff1a;像水流一样传输数据 IO流的作用&#xff1f; 用于读写数据&#xff08;本地文件&#xff0c;网络&#xff09; IO流按照流向可以分类哪两种流&#xff1f…...

单一数字评估指标、迁移学习、多任务学习、端到端的深度学习

目录1.单一数字评估指标(a single number evaluation metric)有时候要比较那个分类器更好&#xff0c;或者哪个模型更好&#xff0c;有很多指标&#xff0c;很难抉择&#xff0c;这个时候就需要设置一个单一数字评估指标。例1&#xff1a;比较A&#xff0c;B两个分类器的性能&a…...

Linux | 一文带你真正搞懂Linux中的权限问题

在Linux下你有多少权限呢❓一、权限的基本概念二、Linux上的用户分类2.1 超级用户与普通用户2.2 用户之间的切换2.3 文件访问者的分类2.4 用户与访问者之间的联系三、文件属性与访问权限3.1 Linux下的文件类型&#xff08;1&#xff09;文件的八种类型&#xff08;2&#xff09…...

C语言深度解剖-关键字(1)

目录 1.初步了解关键字 2.第一个C程序 3.深刻理解变量 是什么&#xff1f; 怎么用&#xff1f; 为什么&#xff1f; 4.深刻理解定义与声明 5.auto关键字的理解 6.理解关键字register 认识&#xff1a; 本质&#xff1a; register 修饰变量 写在最后&#xff1a; 1…...

STM32+python产生三角波

目录任务目标实现方法python制作数表由于项目需要&#xff0c;需要产生一个三角波&#xff0c;需要覆盖4000个点的一个数组&#xff0c;这样的数组点数太多了&#xff0c;肯定不能自己一个一个手写了。最简单的一个方法是在嵌入式程序中用C写一个函数&#xff0c;对一个数组&am…...

java-List

java-List1. 预备知识-泛型(Generic)1.1 泛型的引入1.2 泛型的分类1.3 泛型类的定义的简单演示1.4 泛型背后作用时期和背后的简单原理1.5 泛型类的使用1.6 泛型总结2. 预备知识-包装类(Wrapper Class)2.1 基本数据类型和包装类直接的对应关系2.2 包装类的使用&#xff0c;装箱(…...

【Linux】多线程同步与互斥

目录&#x1f308;前言&#x1f338;1、Linux线程同步&#x1f368;1.1、同步概念与竞态条件&#x1f367;1.2、条件变量&#x1f33a;2、条件变量相关API&#x1f368;2.1、初始化和销毁条件变量&#x1f367;2.2、阻塞等待条件满足&#x1f383;2.3、唤醒阻塞等待的条件变量&…...

(python)selenium工具的安装及其使用

selenium概述 一个自动化测试工具。它可以让python代码调用浏览器。并获取到浏览器中加载的各种资源 优缺点&#xff1a; 优点 selenium能够执行页面上的js&#xff0c;对于js渲染的数据和模拟登陆处理起来非常容易使用难度简单爬取速度慢&#xff0c;爬取频率更像人的行为&a…...

STM32G431—ADC+E2PROM读写实验

目录 1.ADC介绍 配置cubemx 代码 2.IIC 通信 原理图 AT24C02 代码 i2C.c 主函数 1.ADC介绍 ADC 有多达 18 个转换通道&#xff0c;其中通道 0~通道 15 是外部通道&#xff0c;使用的 GPIO 引脚如表 所示。 ADC引脚GPIO引脚GPIO配置ADC引脚GPIO引脚GPIO配置IN0PA0模拟输…...

Modbus协议完整版

第一部分&#xff1a;Modbus协议1 引言1.1 范围MODBUS是OSI模型第7层上的应用层报文传输协议&#xff0c;它在连接至不同类型总线或网络的设备之间提供客户机/服务器通信。自从1979年出现工业串行链路的事实标准以来&#xff0c;MODBUS使成千上万的自动化设备能够通信。目前&am…...

kubernetes资源对象应用类(二)

kubernetes资源对象应用类&#xff08;二&#xff09; Service 的 ClusterIP 地址 既然每个 Pod 都会被分配一个单独的 IP 地址&#xff0c;而且每个 Pod 都提供了一个独立的 Endpoint&#xff08;Pod IP containerPort&#xff09;以被客户端访问&#xff0c;那么现在多个 P…...

【C语言】文件操作详解

✋作者&#xff1a;阿润菜菜 &#x1f4d6;专栏&#xff1a;C语言 本文目录 什么是文件 文件的打开和关闭 文件指针是什么 文件的打开和关闭-fopen函数和fclose函数 常见文件顺序操作函数 文件随机读写操作函数 什么是文件 一篇文章、一段视频、一个可执行程序&#xff0…...

【Vue笔记】Vue中默认插槽slot、具名插槽slot、自定义组件的v-model属性的使用

这篇文章&#xff0c;主要介绍Vue中默认插槽slot、具名插槽slot、自定义组件的v-model属性的使用。 目录 一、插槽slot介绍 1.1、默认插槽 1.2、具名插槽 &#xff08;1&#xff09;如何定义具名插槽&#xff1f;&#xff1f;&#xff1f; &#xff08;2&#xff09;如何使…...

头歌实践教学平台——Python程序设计之语言基础

1.1 四则运算(project) 整数四则运算 """ 试编程实现分两行输入两个非零整数&#xff0c;并在4 行中按顺序输出两个数的加、减、乘、除的计算结果。 要求输出与如下示例格式相同&#xff0c;符号前后各有一个空格。 """#输入整数变量a和b&#x…...

Web3 Tools - 助记词生成(完整代码)

工具介绍 Web3Tools - 助记词生成 完整代码 代码路径 import React, { useState } from react; import Grid from mui/material/Grid; import Paper from mui/material/Paper; import Typography from mui/material/Typography; import Button from mui/material/Button; i…...

【Python】【应用】Python应用之如何操作WiFi之一——使用pywifi

&#x1f41a;作者简介&#xff1a;花神庙码农&#xff08;专注于Linux、WLAN、TCP/IP、Python等技术方向&#xff09;&#x1f433;博客主页&#xff1a;花神庙码农 &#xff0c;地址&#xff1a;https://blog.csdn.net/qxhgd&#x1f310;系列专栏&#xff1a;Python应用&…...

OpenAI 发布新款大型语言模型 GPT-4o,带大家了解最新ChatGPT动态。

OpenAI 发布新款大型语言模型 GPT-4o 昨日OpenAI 举办了一场线上活动&#xff0c;正式发布了其最新研发的 AI 模型 GPT-4o&#xff0c;并详细介绍了该模型的强大功能和未来发展规划。此次发布标志着 AI 技术的重大突破&#xff0c;为用户提供了更加便捷、高效的 AI 工具&#…...

Flink与Spark:大数据处理领域的双子星

在当今的大数据时代&#xff0c;数据的处理和分析显得尤为重要。Flink和Spark作为两大热门的大数据处理框架&#xff0c;各自凭借其独特的优势在市场中占据了一席之地。 Apache Flink是一个为流数据和批数据处理设计的开源平台&#xff0c;它以其强大的流处理能力而著称。Flin…...

汽车线控转向系统介绍

汽车线控转向系统由方向盘总成、转向执行总成和主控制器(ECU)三个主要部分以及自动防故障系统、电源等辅助系统组成。 线控转向系统(Steering-By-Wire)&#xff0c;取消了方向盘和转向车轮之间的机械连接部件&#xff0c;彻底摆脱了机械固件的限制&#xff0c;完全由电能来实现…...

IDEA中开发并部署运行WEB项目

IDEA中开发并部署运行WEB项目 1 WEB项目的标准结构2 WEB项目部署的方式3 IDEA中开发并部署运行WEB项目3.1 部署步骤3.2 IDEA关联本地Tomcat 4 IDEA创建web工程5 IDEA部署-运行web项目6 IDEA部署并运行项目的原理 1 WEB项目的标准结构 一个标准的可以用于发布的WEB项目标准结构如…...

第二证券股市技巧|港股交易规则有哪些?

港股商场作为全球首要的股票商场之一&#xff0c;招引了很多出资者的目光。关于港股的生意规则有哪些&#xff0c;第二证券下面就为大家详细介绍一下。 港股的生意规则&#xff1a; 1、港股生意时刻&#xff1a;港股商场的生意时刻分为上午和下午两个时段&#xff0c;上午的生…...

token存入前端的请求头中,后端获取【秒杀项目】

token存入前端的请求头中,后端获取【秒杀项目】 前言token存入前端的请求头中,后端获取【秒杀项目】token存入前端的请求头中后端获取 前言 2023-08-28 17:34:39 token存入前端的请求头中,后端获取【秒杀项目】 token存入前端的请求头中 function set_login_status() {var …...

​学者观察 | 从区块链应用创新看长安链发展——CCF区块链专委会荣誉主任斯雪明

导语 2024年1月27日&#xff0c;斯雪明教授在长安链发布三周年庆暨生态年会上发表演讲&#xff0c;认为在区块链发展过程中&#xff0c;不仅需要技术创新&#xff0c;同时需要有价值、有特色、有示范意义的应用创新。斯雪明教授介绍了国内区块链技术与应用发展的现状、趋势与挑…...

AI应用案例:吸烟打电话行为识别推理

使用百度PaddlePaddle&#xff08;现更名为PaddlePaddle-GPU或PaddlePaddle-CPU&#xff09;框架来构建精准的人员抽烟、打电话动作识别模型&#xff0c;并将其应用于加油站监控场景&#xff0c;你可以遵循以下步骤&#xff1a; 数据准备&#xff1a; 收集抽烟和打电话行为的图…...

【Linux网络编程】传输层中的TCP和UDP(UDP篇)

【Linux网络编程】传输层中的TCP和UDP&#xff08;UDP篇&#xff09; 目录 【Linux网络编程】传输层中的TCP和UDP&#xff08;UDP篇&#xff09;传输层再谈端口端口号范围划分认识知名端口号netstatiostatpidofxargs UDP协议UDP协议端格式UDP的特点面向数据报UDP的缓冲数据UDP使…...