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

Python+OpenCV系列:Python和OpenCV的结合和发展

Python+OpenCV系列:Python和OpenCV的结合和发展

      • **引言**
      • **Python语言的发展**
        • **1.1 Python的诞生与发展**
        • **1.2 Python的核心特性与优势**
        • **1.3 Python的应用领域**
      • **OpenCV的发展**
        • **2.1 OpenCV的起源与发展**
        • **2.2 OpenCV的功能特性**
        • **2.3 OpenCV的应用场景**
      • **Python与OpenCV的结合**
        • **3.1 Python与OpenCV结合的优势**
        • **3.2 如何在Python中使用OpenCV**
        • **3.3 深度学习与OpenCV结合**
      • **Python与OpenCV结合的应用场景**
        • **4.1 人脸识别与验证**
        • **4.2 自动驾驶中的物体检测与跟踪**
        • **4.3 机器人视觉感知**
        • **4.4 视频监控与安全分析**
      • **总结与展望**

引言

在计算机视觉和人工智能的领域,图像处理技术已逐渐渗透到各行各业,从医学影像分析到自动驾驶,从人脸识别到安防监控,无一不依赖于图像处理和计算机视觉技术。而在这场技术变革中,Python和OpenCV作为两大核心工具,已经成为开发者和研究人员的首选。

Python以其简洁的语法、强大的库生态和良好的可扩展性,成为许多计算机视觉项目的首选编程语言。而OpenCV(Open Source Computer Vision Library)作为一款功能强大的开源计算机视觉库,提供了多种图像处理、特征检测、机器学习等技术,使得开发者能够高效地进行图像和视频处理任务。

本文将从Python语言和OpenCV库的起源、发展历程及各自的优势出发,探讨二者的结合与应用,详细分析如何通过Python调用OpenCV库,解决各种计算机视觉问题。


Python语言的发展

1.1 Python的诞生与发展

Python由Guido van Rossum于1989年在荷兰发明,并于1991年首次发布。Python的设计理念是简洁、易读、易维护,并强调代码的可读性。与C++、Java等语言相比,Python语法更为简洁,适合快速开发。

最初,Python主要被用于学术界的教学和简单的脚本编写。但随着互联网技术的爆发,Python逐渐得到了更广泛的应用。Python具有非常丰富的第三方库支持,特别是NumPy、Pandas、Matplotlib等库的出现,使得Python成为数据分析和科学计算领域的重要工具。

1.2 Python的核心特性与优势
  • 简洁易懂的语法:Python的语法接近自然语言,这使得它非常适合初学者和科研工作者。
  • 动态类型和强大的内存管理:Python支持动态类型声明,自动管理内存,减少了开发时的负担。
  • 丰富的标准库与第三方库:Python拥有丰富的标准库,并且在各个领域都有强大的第三方库。例如,NumPy用于数值计算,SciPy用于科学计算,TensorFlow和Keras用于深度学习,Matplotlib用于绘图等。
  • 跨平台性:Python支持多种操作系统,如Windows、Linux和macOS,这使得Python成为开发跨平台应用的理想语言。
1.3 Python的应用领域

Python广泛应用于以下领域:

  • 数据科学与人工智能:Python的强大数据处理和机器学习库使得它在数据科学和AI领域占有重要地位。
  • Web开发:Flask、Django等框架使得Python在Web开发领域取得了巨大的成功。
  • 自动化脚本:Python被广泛应用于自动化任务、系统管理、Web爬虫等领域。
  • 计算机视觉与图像处理:Python结合OpenCV、Pillow等图像处理库,成为计算机视觉领域的首选语言。

OpenCV的发展

2.1 OpenCV的起源与发展

OpenCV(Open Source Computer Vision Library)最初由英特尔公司于1999年发布,目的是推动实时计算机视觉技术的发展。OpenCV起初是一个基于C++的图像处理库,随着开源的推广,它逐渐支持了Python、Java、Matlab等编程语言。

OpenCV的发布对于计算机视觉技术的普及起到了巨大作用。它使得许多复杂的计算机视觉算法变得易于实现,推动了计算机视觉技术的研究和应用。

2.2 OpenCV的功能特性

OpenCV提供了丰富的功能模块,涵盖了从基本图像处理到高级机器学习、深度学习的方方面面:

  • 图像处理:OpenCV包含多种图像处理函数,如图像读写、颜色空间转换、模糊、边缘检测、图像增强等。
  • 视频分析:OpenCV支持实时视频捕捉、目标跟踪、运动检测等功能。
  • 特征提取与匹配:OpenCV包含多种图像特征提取算法,如SIFT、SURF、ORB等,适用于物体识别、图像拼接等任务。
  • 机器学习:OpenCV提供了许多机器学习算法,如支持向量机(SVM)、K近邻(KNN)、决策树等。
  • 深度学习:OpenCV通过DNN模块支持加载TensorFlow、Caffe、Torch等深度学习模型,使得深度学习与计算机视觉的结合更加紧密。
2.3 OpenCV的应用场景

OpenCV的应用几乎涵盖了所有计算机视觉领域,包括但不限于:

  • 医学图像处理:OpenCV在医学影像分析中应用广泛,如CT、MRI图像处理、肿瘤检测等。
  • 自动驾驶:自动驾驶技术依赖于图像识别与分析,OpenCV提供了图像处理和物体检测的强大工具。
  • 安防监控:人脸识别、车牌识别、视频监控等应用中,OpenCV得到了广泛应用。
  • 机器人技术:OpenCV使得机器人能够进行视觉感知,完成环境识别、路径规划等任务。

Python与OpenCV的结合

3.1 Python与OpenCV结合的优势

Python与OpenCV的结合能够充分发挥Python的简洁性和OpenCV的强大功能,具有以下优势:

  • 开发效率高:Python的简洁性使得开发者可以快速编写代码,调试和修改代码更加方便。
  • 生态丰富:Python的库生态系统丰富,可以轻松集成其他工具和库,如NumPy、SciPy、Matplotlib等,帮助开发者完成更复杂的任务。
  • 易于集成深度学习模型:Python与OpenCV的结合,使得深度学习模型(如YOLO、SSD、MobileNet等)能够方便地集成到计算机视觉应用中。
3.2 如何在Python中使用OpenCV

Python与OpenCV结合后,开发者可以利用Python的简洁代码调用OpenCV强大的图像处理能力。以下是Python与OpenCV结合的一些基础操作:

  • 安装OpenCV

    pip install opencv-python
    
  • 读取和显示图像

    import cv2
    # 读取图像
    img = cv2.imread('image.jpg')
    # 显示图像
    cv2.imshow('Image', img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
    
  • 图像预处理(灰度化、平滑等)

    gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)  # 灰度化
    blurred_img = cv2.GaussianBlur(img, (5, 5), 0)  # 高斯模糊
    
  • 边缘检测

    edges = cv2.Canny(gray_img, 100, 200)
    
  • 视频捕捉与实时处理

    cap = cv2.VideoCapture(0)
    while True:ret, frame = cap.read()if not ret:breakcv2.imshow('Frame', frame)if cv2.waitKey(1) & 0xFF == ord('q'):break
    cap.release()
    cv2.destroyAllWindows()
    
3.3 深度学习与OpenCV结合

随着深度学习的兴起,Python与OpenCV的结合也迎来了新的发展。OpenCV通过其DNN模块支持加载深度学习框架(如TensorFlow、Caffe等)的模型,可以实现高效的物体检测、目标识别等任务。例如,使用预训练的YOLO模型可以进行实时的物体检测:

import cv2
net = cv2.dnn.readNetFromDarknet(configPath, weightsPath)
blob = cv2.dnn.blobFromImage(image, 0.00392, (416, 416), (0, 0, 0), True, crop=False)
net.setInput(blob)
layer_names = net.getLayerNames()
output_layers = [layer_names[i[0] - 1] for i in net.getLayers()]
outs = net.forward(output_layers)

通过这种方式,OpenCV不仅可以进行传统的图像处理,还

能够高效地集成深度学习模型,提升计算机视觉应用的智能性。


Python与OpenCV结合的应用场景

4.1 人脸识别与验证

Python与OpenCV结合的一个典型应用是人脸识别。OpenCV提供了Haar级联分类器和LBPH(局部二值模式直方图)算法,可以帮助开发者轻松实现人脸检测与识别。

4.2 自动驾驶中的物体检测与跟踪

在自动驾驶领域,物体检测与跟踪是计算机视觉的重要应用。Python与OpenCV结合能够实现对道路、行人、交通标志等物体的实时检测和跟踪。

4.3 机器人视觉感知

机器人通过视觉感知来识别环境,进行路径规划。Python与OpenCV结合,能够让机器人具备较强的视觉识别能力,完成物体抓取、导航等任务。

4.4 视频监控与安全分析

Python与OpenCV结合可以帮助开发者实现视频监控系统,进行实时的视频流分析,如人脸识别、行为分析、异常检测等。


总结与展望

Python和OpenCV的结合,不仅极大地简化了计算机视觉项目的开发流程,也促进了深度学习与图像处理技术的融合。随着计算机视觉技术的不断发展,Python和OpenCV将继续引领这一领域的技术创新。未来,我们可以预见,Python与OpenCV将进一步优化性能,扩展更多的应用场景,推动人工智能、自动驾驶、机器人等技术的突破。

相关文章:

Python+OpenCV系列:Python和OpenCV的结合和发展

PythonOpenCV系列:Python和OpenCV的结合和发展 **引言****Python语言的发展****1.1 Python的诞生与发展****1.2 Python的核心特性与优势****1.3 Python的应用领域** **OpenCV的发展****2.1 OpenCV的起源与发展****2.2 OpenCV的功能特性****2.3 OpenCV的应用场景** *…...

报错 JSON.parse: expected property name or ‘}‘,JSON数据中对象的key值不为字符串

报错 JSON.parse: expected property name or ‘}’ 原因 多是因为数据转换时出错,可能是存在单引号或者对象key值不为string导致 这里记录下我遇见的问题(后端给的JSON数据里,对象key值不为string) 现在后端转换JSON数据大多…...

Flutter:商品多规格内容总结,响应式数据,高亮切换显示。

如图所示: 代码为练习时写的项目,写的一般,功能实现了,等以后再来优化。 自己模拟的数据结构 var data {id:1,name:精品小米等多种五谷杂粮精品小等多种五谷杂粮,logo:https://cdn.uviewui.com/uview/swiper/1.jpg,price:100.5…...

WPF+LibVLC开发播放器-LibVLC播放控制

接上一篇&#xff1a; LibVLC在C#中的使用 实现LibVLC播放器播放控制 界面 界面上添加一个Button按钮用于控制播放 <ButtonGrid.Row"1"Width"88"Height"24"Margin"10,0,0,0"HorizontalAlignment"Left"VerticalAlignme…...

Mac环境下brew安装LNMP

安装不同版本PHP 在Mac环境下同时运行多个版本的PHP&#xff0c;同Linux环境一样&#xff0c;都是将后台运行的php-fpm设置为不同的端口号&#xff0c;下面将已php7.2 和 php7.4为例 添加 tap 目的&#xff1a;homebrew仅保留最近的php版本&#xff0c;可能没有你需要的版本…...

nodejs后端项目使用pm2部署

nodejs后端项目使用pm2部署 安装pm2 npm install pm2 -g查看版本号 pm2 --version启动项目 pm2 start app.js# 设置别名 pm2 start app.js --name demo停止项目 pm2 stop [AppName] pm2 stop [ID]# 停止所有项目 pm2 stop all重启项目 pm2 restart [AppName] pm2 re…...

【C++】深入理解字符变量取地址的特殊性与内存管理机制详解

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 &#x1f4af;前言&#x1f4af;栈内存中的变量分配&#xff1a;谁先谁后&#xff1f;cout 的输出行为&#xff1a;按顺序执行&#xff0c;按地址递增读取代码执行顺序与内存布局的关系编译器优化的影响 &…...

【银河麒麟操作系统真实案例分享】内存黑洞导致服务器卡死分析全过程

了解更多银河麒麟操作系统全新产品&#xff0c;请点击访问 麒麟软件产品专区&#xff1a;https://product.kylinos.cn 开发者专区&#xff1a;https://developer.kylinos.cn 文档中心&#xff1a;https://documentkylinos.cn 现象描述 机房显示器连接服务器后黑屏&#xff…...

蓝桥杯软件赛系列---lesson1

&#x1f308;个人主页&#xff1a;羽晨同学 &#x1f4ab;个人格言:“成为自己未来的主人~” 我们今天会再开一个系列&#xff0c;那就是蓝桥杯系列&#xff0c;我们会从最基础的开始讲起&#xff0c;大家想要备战明年蓝桥杯的&#xff0c;让我们一起加油。 工具安装 DevC…...

工业异常检测-CVPR2024-新的3D异常数据合成办法和自监督网络IMRNet

论文&#xff1a;https://arxiv.org/pdf/2311.14897v3.pdf 项目&#xff1a;https://github.com/chopper-233/anomaly-shapenet 这篇论文主要关注的是3D异常检测和定位&#xff0c;这是一个在工业质量检查中至关重要的任务。作者们提出了一种新的方法来合成3D异常数据&#x…...

HeidiSQL:MySQL图形化管理工具深度解析

本文还有配套的精品资源&#xff0c;点击获取 简介&#xff1a;HeidiSQL是一款开源的MySQL图形化管理工具&#xff0c;适用于多种数据库系统&#xff0c;如MySQL、MariaDB、SQL Server、PostgreSQL和SQLite。其提供的直观操作界面和丰富的功能简化了数据库操作&#xff0c;包…...

【Redis】深入解析Redis缓存机制:全面掌握缓存更新、穿透、雪崩与击穿的终极指南

文章目录 一、Redis缓存机制概述1.1 Redis缓存的基本原理1.2 常见的Redis缓存应用场景 二、缓存更新机制2.1 缓存更新的策略2.2 示例代码&#xff1a;主动更新缓存 三、缓存穿透3.1 缓存穿透的原因3.2 缓解缓存穿透的方法3.3 示例代码&#xff1a;使用布隆过滤器 四、缓存雪崩4…...

Flask使用Celery与多进程管理:优雅处理长时间任务与子进程终止技巧(multiprocessing)(subprocess)

在许多任务处理系统中&#xff0c;我们需要使用异步任务队列来处理繁重的计算或长时间运行的任务&#xff0c;如模型训练。Celery是一个广泛使用的分布式任务队列&#xff0c;而在某些任务中&#xff0c;尤其是涉及到调用独立脚本的场景中&#xff0c;我们需要混合使用multipro…...

【PyTorch】torch.distributed.elastic.multiprocessing.errors.ChildFailedError:

报错说明 torch.distributed.elastic.multiprocessing.errors.ChildFailedError: 报错如图所示 报错分析 该报错是 torch 和 CUDA 版本不兼容导致。 &#xff08;一般N卡自带的CUDA版本与最新的torch版本相差较大&#xff09; 解决方案 1.查看自己的CUDA版本 # 查看自己的…...

使用android studio写一个Android的远程通信软件(APP),有通讯的发送和接收消息界面

以下是使用 Android Studio 基于 Java 语言编写一个简单的 Android APP 实现远程通信&#xff08;这里以 TCP 通信为例&#xff09;的代码示例&#xff0c;包含基本的通信界面以及发送和接收消息功能。 1. 创建项目 打开 Android Studio&#xff0c;新建一个 Empty Activity …...

突破空间限制!从2D到3D:北大等开源Lift3D,助力精准具身智能操作!

文章链接&#xff1a;https://arxiv.org/pdf/2411.18623 项目链接&#xff1a;https://lift3d-web.github.io/ 亮点直击 提出了Lift3D&#xff0c;通过系统地提升隐式和显式的3D机器人表示&#xff0c;提升2D基础模型&#xff0c;构建一个3D操作策略。 对于隐式3D机器人表示&a…...

Android KEY的哪些事儿

目录 一、APK应用签名 1、什么是APK应用签名&#xff1f; 1.1 目的和作用&#xff1f; 1.2 长什么样子&#xff1f; 2、APK应用签名使用流程 步骤一&#xff1a;如何生成APK应用签名文件&#xff1f; 步骤二&#xff1a;如何集成APK应用签名文件&#xff1f; 步骤三&am…...

李宏毅深度学习-Pytorch Tutorial2

什么是张量&#xff1f; 张量&#xff08;Tensor&#xff09;是深度学习和机器学习中一个非常基础且重要的概念。在数学上&#xff0c;张量可以被看作是向量和矩阵的泛化。简单来说&#xff0c;张量是一种多维数组&#xff0c;它可以表示标量&#xff08;0维&#xff09;、向量…...

【译】为 SAP 表维护视图 (SM30) 创建选择屏幕

原文标题&#xff1a;Create Selection Screen for SAP Table Maintenance View (SM30) 原文链接&#xff1a; https://www.saphub.com/abap-dictionary/sap-abap-tmg-selection-screen/ 通常&#xff0c;带有单个屏幕的 SAP 表维护视图 (SM30) 会显示表中的所有记录&#xff…...

element Plus中 el-table表头宽度自适应,不换行

在工作中&#xff0c;使用el-table表格进行开发后&#xff0c;遇到了小屏幕显示器上显示表头文字会出现换行展示&#xff0c;比较影响美观&#xff0c;因此需要让表头的宽度变为不换行&#xff0c;且由内容自动撑开。 以下是作为工作记录&#xff0c;用于demo演示教程 先贴个…...

C语言程序设计P5-4【应用函数进行程序设计 | 第四节】——知识要点:数组作函数参数

知识要点&#xff1a;数组作函数参数 视频&#xff1a; 目录 一、任务分析 二、必备知识与理论 三、任务实施 一、任务分析 任务要求用选择法对数组中的 10 个整数按由小到大的顺序排序&#xff0c;前面在讲解数组时讲冒泡法排序曾提到选择法排序的思想。 所谓选择法就是…...

时间序列模型在LSTM中的特征输入

这里写目录标题 前言LSTM的输入组成时间步例子 实际代码解读特征提取处理成dataloader格式&#xff08;用于输入到模型当中&#xff09;对应到lstm的模型创建代码 总结 前言 本文章将帮助理解如何将一个时间序列的各种特征&#xff08;年月日的时间特征&#xff0c;滚动窗口滞…...

Python_Flask02

所有人都不许学Java了&#xff0c;都来学Python&#xff01; 如果不来学的话请网爆我的老师 连接前的准备 安装pymysql 和 flask_sqlalchemy&#xff0c;安装第三下面两个所需要的包才能连接上数据库 pip install pymysql pip install flask_sqlalchemy pymysql是一个Pyth…...

threejs相机辅助对象cameraHelper

为指定相机创建一个辅助对象&#xff0c;显示这个相机的视锥。 想要在场景里面显示相机的视锥&#xff0c;需要创建两个相机。 举个例子&#xff0c;场景中有个相机A&#xff0c;想要显示相机A的视锥&#xff0c;那么需要一个相机B&#xff0c;把B放在A的后面&#xff0c;两个…...

断点续传+测试方法完整示例

因为看不懂网上的断点续传案例&#xff0c;而且又不能直接复制使用&#xff0c;干脆自己想想写了一个。 上传入参类&#xff1a; import com.fasterxml.jackson.annotation.JsonIgnore; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProp…...

C#设计模式--状态模式(State Pattern)

状态模式是一种行为设计模式&#xff0c;它允许对象在其内部状态发生变化时改变其行为。这种模式的核心思想是将状态封装在独立的对象中&#xff0c;而不是将状态逻辑散布在整个程序中。 用途 简化复杂的条件逻辑&#xff1a;通过将不同的状态封装在不同的类中&#xff0c;可…...

Excel技巧:如何批量调整excel表格中的图片?

插入到excel表格中的图片大小不一&#xff0c;如何做到每张图片都完美的与单元格大小相同&#xff1f;并且能够根据单元格来改变大小&#xff1f;今天分享&#xff0c;excel表格里的图片如何批量调整大小。 方法如下&#xff1a; 点击表格中的一个图片&#xff0c;然后按住Ct…...

hadoop中导出表与数据的步骤

大家好&#xff0c;我是 V 哥。在Hadoop中导出表与数据&#xff0c;可以通过多种方式实现&#xff0c;包括使用Hive的EXPORT命令、MapReduce作业、Hive查询以及Sqoop工具。下面V 哥将详细介绍这些步骤和一些代码示例&#xff0c;来帮助大家更好理解。 1. 使用Hive的EXPORT命令…...

springBoot中的日志级别在哪里配置

在Spring Boot中&#xff0c;日志级别的配置可以通过多种方式来实现&#xff0c;主要包括在配置文件中设置、使用自定义的logback配置文件&#xff0c;以及在代码中动态配置等。以下是一些具体的配置方法&#xff1a; 一、在配置文件中设置日志级别 Spring Boot默认使用appli…...

17. Threejs案例-Three.js创建多个立方体

17. Threejs案例-Three.js创建多个立方体 实现效果 知识点 WebGLRenderer (WebGL渲染器) WebGLRenderer 是 Three.js 中用于渲染 WebGL 场景的核心类。它负责将场景中的对象渲染到画布上。 构造器 new THREE.WebGLRenderer(parameters) 参数类型描述parametersObject可选…...

数据结构——有序二叉树的删除

在上一篇博客中&#xff0c;我们介绍了有序二叉树的构建、遍历、查找。 数据结构——有序二叉树的构建&遍历&查找-CSDN博客文章浏览阅读707次&#xff0c;点赞18次&#xff0c;收藏6次。因为数据的类型决定数据在内存中的存储形式。left right示意为左右节点其类型也为…...

力扣1401. 圆和矩形是否有重叠

用矢量计算&#xff1a; class Solution { public:bool checkOverlap(int radius, int xCenter, int yCenter, int x1, int y1, int x2, int y2) {//矩形中心float Tx(float)(x1x2)/2;float Ty(float)(y1y2)/2;//强行进行对称操作&#xff0c;只考虑第一象限if(xCenter<Tx)…...

idea连接到docker出现 org.apache.hc.client5.http.ConnectTimeoutException 异常怎么办?

前情提要 我电脑是win11&#xff0c;我安装了centOS7虚拟机&#xff0c;配置linux环境 idea是2024社区免费版本 我就这一步步排查问题&#xff0c;终于发现了是因为我的2375端口没有ipv4开放&#xff0c;只在ipv6开放 踩坑提醒&#xff1a; 对了&#xff0c;一个一个问题排…...

一番赏小程序定制开发,打造全新抽赏体验平台

随着盲盒的热潮来袭&#xff0c;作为传统的潮玩方式一番赏也再次受到了大家的关注&#xff0c;市场热度不断上升&#xff01; 一番赏能够让玩家百分百中奖&#xff0c;商品种类丰富、收藏价值高&#xff0c;拥有各种IP&#xff0c;从而吸引着各个圈子的粉丝玩家&#xff0c;用…...

PHP语法学习(第六天)

&#x1f4a1;依照惯例&#xff0c;回顾一下昨天讲的内容 PHP语法学习(第五天)主要讲了PHP中的常量和运算符的运用。 &#x1f525; 想要学习更多PHP语法相关内容点击“PHP专栏” 今天给大家讲课的角色是&#x1f34d;菠萝吹雪&#xff0c;“我菠萝吹雪吹的不是雪&#xff0c;而…...

按vue组件实例类型实现非侵入式国际化多语言翻译

#vue3##国际化##本地化##international# web界面国际化&#xff0c;I18N&#xff08;Internationalization&#xff0c;国际化&#xff09;&#xff0c;I11L(International&#xff0c;英特纳雄耐尔)&#xff0c;L10N&#xff08;Localization&#xff0c;本地化&#xff09;&…...

2024年认证杯SPSSPRO杯数学建模B题(第一阶段)神经外科手术的定位与导航解题全过程文档及程序

2024年认证杯SPSSPRO杯数学建模 B题 神经外科手术的定位与导航 原题再现&#xff1a; 人的大脑结构非常复杂&#xff0c;内部交织密布着神经和血管&#xff0c;所以在大脑内做手术具有非常高的精细和复杂程度。例如神经外科的肿瘤切除手术或血肿清除手术&#xff0c;通常需要…...

51c视觉~合集24

我自己的原文哦~ https://blog.51cto.com/whaosoft/11870494 #R-Adapter 零样本模型微调新突破&#xff0c;提升鲁棒性与泛化能力 论文提出新颖的Robust Adapter&#xff08;R-Adapter&#xff09;&#xff0c;可以在微调零样本模型用于下游任务的同时解决这两个问题。该方…...

idea启动tomcat服务中文乱码

在idea中启动tomcat服务后部分中文乱码 但是在tomcat日志部分正常 并且在tomcat中中文也是正常 查询大量资料修改idea编码&#xff0c;虚拟机编码、tomcat默认编码、终端默认编码&#xff0c;统统没有效果。 最终发现修改tomcat下文件夹 .\conf\logging.properties 网络上…...

android studio 读写文件操作(应用场景二)

android studio版本&#xff1a;2023.3.1 patch2 例程&#xff1a;readtextviewIDsaveandread 本例程是个过渡例程&#xff0c;如果单是实现下图的目的有更简单的方法&#xff0c;但这个方法是下一步工作的基础&#xff0c;所以一定要做。 例程功能&#xff1a;将两个textvi…...

【数据结构】【线性表】特殊的线性表-字符串

目录 字符串的基本概念 字符串的三要素 字符串的基本概念 串的编码 串的实现及基本运算 顺序串的实现 串的静态数组实现 串的动态数组的实现 顺序存储的四种方案 链式串的实现 基本运算 方案三 方案一 字符串的基本概念 数据结构千千万&#xff0c…...

【AWS re:Invent 2024】一文了解EKS新功能:Amazon EKS Auto Mode

文章目录 一、为什么要使用 Amazon EKS Auto Mode&#xff1f;二、Amazon EKS自动模式特性2.1 持续优化计算成本2.2 迁移集群操作2.3 EKS 自动模式的高级功能 三、EKS Auto 集群快速创建集群配置四、查看来自 API 服务器的指标五、EKS 相关角色权限设置六、参考链接 一、为什么…...

HTTPS的工作过程

1.HTTPS协议原理 1.1HTTPS协议的由来 HTTP在传输网络数据的时候是明文传输的&#xff0c;信息容易被窃听甚至篡改&#xff0c;因此他是一个不安全的协议&#xff08;但效率高&#xff09;。在如今的网络环境中&#xff0c;数据安全是很重要的&#xff08;比如支付密码又或者各…...

Java并发编程学习之从资本家的角度看多线程和并发性(一)

目录 前言前置知识一、单线程时代二、为什么要有多线程&#xff0c;多线程的优点&#xff1f;三、使用多线程会遇到什么问题&#xff1f;四、多线程和并发编程的关系总结 前言 这篇文章是打开Java多线程和并发编程的大门的开始&#xff0c;如标题《从老板的角度看多线程和并发…...

基于STM32设计的智能宠物喂养系统(华为云IOT)_273

文章目录 一、前言1.1 项目介绍【1】项目开发背景【2】设计实现的功能【3】项目硬件模块组成【4】设计意义【5】国内外研究现状【6】摘要1.2 设计思路1.3 系统功能总结1.4 开发工具的选择【1】设备端开发【2】上位机开发1.5 参考文献1.6 系统框架图1.7 系统原理图1.8 实物图1.9…...

Mybatis-Plus的主要API

一、实体类操作相关API BaseMapper<T>接口 功能&#xff1a;这是 MyBatis - Plus 为每个实体类对应的 Mapper 接口提供的基础接口。它提供了一系列基本的 CRUD&#xff08;增删改查&#xff09;操作方法。例如insert(T entity)方法用于插入一条记录&#xff0c;d…...

Pillow:强大的Python图像处理库

目录 一、引言 二、Pillow 库的安装 三、Pillow 库的基本概念 四、图像的读取和保存 五、图像的基本属性 六、图像的裁剪、缩放和旋转 七、图像的颜色调整 八、图像的滤镜效果 九、图像的合成和叠加 十、图像的绘制 十一、示例程序&#xff1a;制作图片水印 十二、…...

Springboot定时任务详解

文章目录 Springboot定时任务详解一、引言二、cron表达式三、使用Scheduled注解1、开启定时任务2、添加定时任务 四、使用TaskScheduler接口1、注入TaskScheduler实例 五、集成Quartz框架1、集成Quartz 六、实际使用示例七、总结 Springboot定时任务详解 一、引言 在现代软件…...

【Linux】环境ChatGLM-4-9B 模型之 openai API 服务

一、摘要 最近看到 Function Call 比较感兴趣,它的核心是赋予大模型能够调用外部API的能力,能够解决大模型功能扩展性问题,允许模型调用外部数据库或API,提供特定领域的详细信息;解决信息实时性问题,模型可以实时获取最新数据;解决数据局限性问题,大模型训练数据虽多但…...

mobi文件转成pdf

将 MOBI 文件转换为 PDF 格式通常涉及两个步骤&#xff1a; 解析 MOBI 文件&#xff1a;需要提取 MOBI 文件的内容&#xff08;文本、图片等&#xff09;。将提取的内容转换为 PDF&#xff1a;将 MOBI 文件的内容渲染到 PDF 格式。 可用工具 kindleunpack 或 mobi&#xff1…...