Pillow:强大的Python图像处理库
目录
一、引言
二、Pillow 库的安装
三、Pillow 库的基本概念
四、图像的读取和保存
五、图像的基本属性
六、图像的裁剪、缩放和旋转
七、图像的颜色调整
八、图像的滤镜效果
九、图像的合成和叠加
十、图像的绘制
十一、示例程序:制作图片水印
十二、总结
一、引言
在当今数字化的时代,图像处理在各个领域都有着广泛的应用,从图像编辑软件到网页设计,从科学研究到人工智能。Python 作为一种功能强大且易于学习的编程语言,拥有众多优秀的库来处理图像。其中,Pillow 库是 Python 中最常用的图像处理库之一。
Pillow是Python Imaging Library(PIL)的一个友好分支,它提供了广泛的功能,包括图像读取、保存、编辑、转换、绘制等。无论你是一名专业的软件开发人员,还是一个对图像处理感兴趣的爱好者,Pillow都能为你提供强大的工具来处理图像。
本文将详细介绍Pillow库的功能、用法和示例,帮助你快速掌握这个强大的图像处理库。
二、Pillow库的安装
在使用Pillow库之前,我们需要先安装它。可以使用以下命令来安装Pillow:
pip install pillow
安装完成后,我们就可以在Python程序中导入Pillow库了:
from PIL import Image
三、Pillow 库的基本概念
1. 图像对象
在Pillow中,图像由Image类的对象表示。可以通过多种方式创建图像对象,例如从文件中读取图像、创建一个新的空白图像等。
2. 图像模式
图像模式指定了图像中每个像素的表示方式。常见的图像模式有RGB(红、绿、蓝三原色)、 RGBA(红、绿、蓝、透明度)、 L (灰度)等。
3. 坐标系统
Pillow使用笛卡尔坐标系统来表示图像中的位置。左上角的坐标为(0, 0),x坐标从左到右增加,y 坐标从上到下增加。
四、图像的读取和保存
1. 从文件中读取图像
可以使用Image.open()函数从文件中读取图像。该函数返回一个Image对象,表示读取的图像。
2. 保存图像
可以使用Image.save()函数将图像保存到文件中。该函数接受一个文件名作为参数,并将图像保存到指定的文件中。
示例:
from PIL import Image# 从文件中读取图像image = Image.open('image.jpg')# 保存图像image.save('new_image.jpg')
五、图像的基本属性
1. 图像尺寸
可以使用Image.size属性获取图像的尺寸。该属性返回一个包含图像宽度和高度的元组。
# 获取图像尺寸width, height = image.sizeprint(f'图像尺寸:{width} x {height}')
2. 图像模式
可以使用Image.mode属性获取图像的模式。
# 获取图像模式mode = image.modeprint(f'图像模式:{mode}')
3. 图像格式
可以使用Image.format属性获取图像的格式。
# 获取图像格式format = image.formatprint(f'图像格式:{format}')
六、图像的裁剪、缩放和旋转
1. 裁剪图像
可以使用Image.crop()函数裁剪图像。该函数接受一个包含四个坐标值的元组作为参数,表示裁剪区域的左上角和右下角坐标。
# 裁剪图像cropped_image = image.crop((100, 100, 300, 300))
2. 缩放图像
可以使用Image.resize()函数缩放图像。该函数接受一个包含新宽度和新高度的元组作为参数,并返回一个缩放后的Image对象。
# 缩放图像resized_image = image.resize((500, 500))
3. 旋转图像
可以使用Image.rotate()函数旋转图像。该函数接受一个角度作为参数,并返回一个旋转后的Image对象。
# 旋转图像rotated_image = image.rotate(45)
七、图像的颜色调整
1. 调整亮度
可以使用ImageEnhance.Brightness类来调整图像的亮度。该类的enhance()方法接受一个亮度调整因子作为参数,并返回一个调整后的Image对象。
2. 调整对比度
可以使用ImageEnhance.Contrast类来调整图像的对比度。
3. 调整饱和度
可以使用ImageEnhance.Color类来调整图像的饱和度。
from PIL import ImageEnhance# 调整亮度enhancer = ImageEnhance.Brightness(image)brightened_image = enhancer.enhance(1.5)# 调整对比度enhancer = ImageEnhance.Contrast(image)contrasted_image = enhancer.enhance(2)# 调整饱和度enhancer = ImageEnhance.Color(image)saturated_image = enhancer.enhance(1.5)
八、图像的滤镜效果
1. 模糊效果
可以使用ImageFilter.BLUR滤镜来实现模糊效果。
2. 锐化效果
可以使用ImageFilter.SHARPEN滤镜来实现锐化效果。
3. 边缘检测效果
可以使用ImageFilter.FIND_EDGES滤镜来实现边缘检测效果。
示例:
from PIL import ImageFilter# 模糊效果blurred_image = image.filter(ImageFilter.BLUR)# 锐化效果sharpened_image = image.filter(ImageFilter.SHARPEN)# 边缘检测效果edged_image = image.filter(ImageFilter.FIND_EDGES)
九、图像的合成和叠加
1. 图像合成
可以使用Image.composite()函数来合成两个图像。该函数接受两个Image对象和一个遮罩图像作为参数,并返回一个合成后的Image对象。
2. 图像叠加
可以使用Image.blend()函数来叠加两个图像。该函数接受两个Image对象和一个混合因子作为参数,并返回一个叠加后的Image对象。
示例:
from PIL import Image# 打开两张图像
image1 = Image.open('image1.jpg')
image2 = Image.open('image2.jpg')# 合成图像
# 假设这里的 mask 可以根据实际情况进行设置
mask = Image.new('L', image1.size, 128)
composite_image = Image.composite(image1, image2, mask=mask)# 叠加图像
blended_image = Image.blend(image1, image2, alpha=0.5)# 显示合成后的图像
composite_image.show()# 显示叠加后的图像
blended_image.show()
十、图像的绘制
1. 绘制矩形
可以使用ImageDraw.Draw类的rectangle()方法来绘制矩形。该方法接受一个包含四个坐标值的元组作为参数,表示矩形的左上角和右下角坐标。
2. 绘制圆形
可以使用ImageDraw.Draw类的ellipse()方法来绘制圆形。该方法接受一个包含四个坐标值的元组作为参数,表示圆形的外接矩形的左上角和右下角坐标。
3. 绘制文本
可以使用ImageDraw.Draw类的text()方法来绘制文本。该方法接受一个坐标元组、文本内容和字体颜色作为参数。
from PIL import ImageDraw# 绘制矩形draw = ImageDraw.Draw(image)draw.rectangle((100, 100, 300, 300), outline='red')# 绘制圆形draw.ellipse((200, 200, 400, 400), outline='blue')# 绘制文本draw.text((100, 400), 'Hello, Pillow!', fill='green')
十一、示例程序:制作图片水印
以下是一个使用 Pillow 库制作图片水印的示例程序:
from PIL import Image, ImageDraw, ImageFont# 打开原始图像image = Image.open('original_image.jpg')# 创建一个新的透明图像,大小与原始图像相同watermark_image = Image.new('RGBA', image.size, (0, 0, 0, 0))# 创建一个绘图对象draw = ImageDraw.Draw(watermark_image)# 设置水印文本和字体text = 'Watermark'font = ImageFont.truetype('arial.ttf', 50)# 获取水印文本的尺寸text_width, text_height = draw.textsize(text, font)# 计算水印文本的位置x = image.width - text_width - 10y = image.height - text_height - 10# 在透明图像上绘制水印文本draw.text((x, y), text, font=font, fill=(255, 255, 255, 128))# 将水印图像叠加到原始图像上result_image = Image.alpha_composite(image.convert('RGBA'), watermark_image)# 保存结果图像result_image.save('watermarked_image.jpg')
十二、总结
Pillow库是一个功能强大且易于使用的Python 图像处理库。它提供了广泛的功能,包括图像读取、保存、编辑、转换、绘制等。通过本文的介绍,你应该对Pillow库的功能和用法有了更深入的了解。希望你能在实际项目中充分利用Pillow库的强大功能,实现各种图像处理任务。
无论是进行简单的图像编辑,还是进行复杂的图像处理算法开发,Pillow库都能为你提供有力的支持。同时,Pillow库还具有良好的文档和社区支持,如果你在使用过程中遇到问题,可以随时查阅文档或在社区中寻求帮助。
总之,Pillow库是Python图像处理领域的一颗明珠,值得每一位开发者去探索和使用。
相关文章:
Pillow:强大的Python图像处理库
目录 一、引言 二、Pillow 库的安装 三、Pillow 库的基本概念 四、图像的读取和保存 五、图像的基本属性 六、图像的裁剪、缩放和旋转 七、图像的颜色调整 八、图像的滤镜效果 九、图像的合成和叠加 十、图像的绘制 十一、示例程序:制作图片水印 十二、…...
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 格式通常涉及两个步骤: 解析 MOBI 文件:需要提取 MOBI 文件的内容(文本、图片等)。将提取的内容转换为 PDF:将 MOBI 文件的内容渲染到 PDF 格式。 可用工具 kindleunpack 或 mobi࿱…...
Linux---对缓冲区的简单理解--第一个系统程序
前序: 首先先理解一下什么是回车与换行;回车和换行是两个概念,它们不是一个东西; 回车:光标回到开始;换行:换到下一行; 如下图: 行缓冲区 如何理解缓冲区问题? 可以认为࿰…...
word poi-tl 表格功能增强,实现表格功能垂直合并
目录 问题解决问题poi-tl介绍 功能实现引入依赖模版代码效果图 附加(插件实现)MergeColumnData 对象MergeGroupData 类ServerMergeTableData 数据信息ServerMergeTablePolicy 合并插件 问题 由于在开发功能需求中,word文档需要垂直合并表格&…...
鸿蒙实现数据管理
目录: 1、鸿蒙实现数据管理的三种方式2、用户首选项3、键值型数据管理3.1、获取KVManager实例,用于管理数据库对象3.2、创建并获取键值数据库3.3、调用put()方法向键值数据库中插入数据3.4、调用get()方法获取指定键的值3.5、调用delete()方法删除指定键…...
图片上传HTML
alioss sky:jwt:# 设置jwt签名加密时使用的秘钥admin-secret-key: itcast# 设置jwt过期时间admin-ttl: 7200000# 设置前端传递过来的令牌名称admin-token-name: tokenalioss:endpoint: ${sky.alioss.endpoint}access-key-id: ${sky.alioss.access-key-id}access-key-secret: $…...
golang 代发邮件支持附件发送,outlook案列,其他邮箱需要替换对应邮箱服务域名
GPT问答实例 import pandas as pd from openai.embeddings_utils import get_embedding, cosine_similarity import openai import os import logging as logger from flask_cors import CORS import os openai.api_key os.getenv(OPENAI_API_KEY)class Chatbot():def parse_…...
输出绝对值
输出绝对值 C语言代码C 代码Java代码Python代码 💐The Begin💐点点关注,收藏不迷路💐 输入一个浮点数,输出这个浮点数的绝对值。 输入 输入一个浮点数,其绝对值不超过10000。 输出 输出这个浮点数的绝对…...
docker desktop打包配置国内镜像地址
打包遇到无法访问外网资源,直接配置国内镜像地址 直接加入如下代码就行: {"builder": {"gc": {"defaultKeepStorage": "20GB","enabled": true}},"experimental": false,"registry-m…...
鸿蒙Next学习-监听指定页面显示/页面生命周期
自定义组件监听页面生命周期 使用无感监听页面路由的能力,能够实现在自定义组件中监听页面的生命周期。 // Index.ets import { uiObserver, router, UIObserver } from kit.ArkUI;Entry Component struct Index {listener: (info: uiObserver.RouterPageInfo) &g…...
计算机网络 —— HTTPS 协议
前一篇文章:计算机网络 —— HTTP 协议(详解)-CSDN博客 目录 前言 一、HTTPS 协议简介 二、HTTPS 工作过程 1.对称加密 2.非对称加密 3.中间人攻击 4.引入证书 三、HTTPS 常见问题 1.中间人能否篡改证书? 2.中间人能否调…...
Oracle之表空间迁移
问题背景:一个数据表随着时间的累积,导致所在表空间占用很高,里面历史数据可以清除,保留近2个月数据即可 首先通过delete删除了2个月以前的数据。 按网上的教程进行空间压缩,以下sql在表所在用户执行: -- 允许表重新…...
web组态可视化编辑器
随着工业智能制造的发展,工业企业对设备可视化、远程运维的需求日趋强烈,传统的单机版组态软件已经不能满足越来越复杂的控制需求,那么实现web组态可视化界面成为了主要的技术路径。 行业痛点 对于软件服务商来说,将单机版软件转…...
SpringMVC纯注解快速开发
此文章适合具有一定的java基础的同学看哦,如果有看不懂的基本代码还是先补补java基础哦。 此教程带您不使用xml文件而是纯注解开发,易懂、快捷、迅速,从0开始搭建,很快就能构建起一个SpringMVC项目,能学到两种使用tom…...
[读论文] Compositional 3D-aware Video Generation with LLM Director
Abstract 近年来,通过强大的生成模型和大规模互联网数据,文本到视频生成领域取得了显著进展。然而,在生成视频中精确控制单个概念(如特定角色的动作和外观、视角的移动)方面,仍存在巨大挑战。为此ÿ…...
FFmpeg 4.3 音视频-多路H265监控录放C++开发十八,ffmpeg解复用
为啥要封装和解封装呢? 1.封装就相当于将 h264 和aac 包裹在一起。既能播放声音,也能播放视频 2.在封装的时候没指定编码格式,帧率,时长,等参数;特别是视频,可以将视频帧索引存储,…...
ubuntu系统安装docker
1、 安装必要的依赖 sudo apt install apt-transport-https ca-certificates curl software-properties-common2、添加 Docker 的官方 GPG 密钥 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -3、添加 Docker 的 APT 源 sudo add-apt-repos…...
STM32 BootLoader 刷新项目 (十三) Python上位机介绍
STM32 BootLoader 刷新项目 (十三) Python上位机介绍 大家好,这是我们STM32 BootLoader的最后一篇文章了,讲述用Python写的上位机,也更新了半年时间了,谢谢大家的支持,到目前为止,已经更新了12篇文章了&am…...
美畅物联丨智能监控,高效运维:视频汇聚平台在储能领域的实践探索
在当今全球能源格局不断变化的大背景下,对清洁能源的需求正以惊人的速度增长。储能项目作为平衡能源供需、提升能源利用效率的关键环节,其规模和复杂度也在不断攀升。在储能项目的运营管理过程中,安全监控、设备运维以及数据管理等方面面临着…...
T C P
文章目录 基于UDP应用场景 TCP协议TCP 协议段格式确认应答机制16位窗口大小 下定义32位序号和32位确认序号序号是什么?确认序号 基于UDP应用场景 UDP,tcp这样的协议根本不是直接谈UDP。tcp的应用场景,一定是上层写了应用层协议,所…...
MongoDB的简单使用
MongoDB(文档数据库)的简单使用 MongoDB最好的学习资料就是他的官方文档:SQL 到 MongoDB 的映射图表 - MongoDB 手册 v8.0 1.MongoDB CRUD操作 1.1Insert操作 基本方法: db.collection.insertOne() 将单个文档(document)插入集合中 db.collectio…...
【Exp】# Microsoft Visual C++ Redistributable 各版本下载地址
Microsoft官方页面 https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads Redistributable 2019 X86: https://aka.ms/vs/16/release/VC_redist.x86.exe X64: https://aka.ms/vs/16/release/VC_redist.x64.exe Redistributable 201…...
【MySQL】表的约束
目录 一、非空约束not null 二、默认值约束default 三、列描述comment 四、填充零zerofill 五、主键primary key 六、自增长auto_increment 七、唯一键unique 八、外键foreign key 一、非空约束not null 如果不对一个字段做非空约束,则默认为空。但空数据无…...
c++高级篇(四) ——Linux下IO多路复用之epoll模型
IO多路复用 —— epoll 前言 在之前我们就已经介绍过了select和poll,在作为io多路复用的最后一个的epoll,我们来总结一下它们之间的区别: a select 实现原理 select 通过一个文件描述符集合(fd_set)来工作,该集合可以包含需要监控的文件…...
基于Java Springboot环境保护生活App且微信小程序
一、作品包含 源码数据库设计文档万字PPT全套环境和工具资源部署教程 二、项目技术 前端技术:Html、Css、Js、Vue、Element-ui 数据库:MySQL 后端技术:Java、Spring Boot、MyBatis 三、运行环境 开发工具:IDEA/eclipse 微信…...
.NET 9 中 LINQ 新增功能实现过程
本文介绍了.NET 9中LINQ新增功能,包括CountBy、AggregateBy和Index方法,并提供了相关代码示例和输出结果,感兴趣的朋友跟随我一起看看吧 LINQ 介绍 语言集成查询 (LINQ) 是一系列直接将查询功能集成到 C# 语言的技术统称。 数据查询历来都表示为简单的…...
【Vue3中Router使用】
Vue3中Router使用 1. 安装vue-router组件2. 建两个测试页面2.1 测试页面Home.vue2.2 测试页面Category.vue 3. 创建路由对象4. 在入口main.js中引入router把App.vue改成路由页面5. 测试5.1 关闭检查解决ESlint报错5.2 改文件名解决ESlint检查报错测试WebHashHistory 和WebHisto…...
性能测试攻略(一):需求分析
性能测试成为软件开发和运维过程中不可或缺的一环。性能测试不仅能够帮助我们了解系统在特定条件下的表现,还能帮助我们发现并解决潜在的性能问题。那么我们怎么做一次完整的性能测试呢?首先,我们需要进行需求分析,来明确我们的测…...
android WebRtc 无法推流以及拉流有视频无声音问题
最近在开发使用WebRtc进行视频通话和语音通话,我使用的设备是MTK的手机,期间后台的技术人员几乎没法提供任何帮助,只有接口和测试的web端,有遇到不能推流。推流成功网页端有画面有声音,但是安卓端有画面,没…...
Socket编程TCP
【Linux】TCP编程 实验:通过TCP通信—在客户端输入要执行的指令,接收执行结果,另服务端接收指令并执行,向客户端发送执行结果 //主函数 #include<iostream> #include<string> #include"log.hpp" #include…...
《以 C++为笔,绘就手势识别人机交互新画卷》
在科技浪潮汹涌澎湃的当下,人机交互领域正处于深刻变革的前沿阵地。从古老的命令行输入到图形化界面的鼠标点击,再到如今风靡全球的触摸操控,每一次交互方式的革新都重塑了我们与电子设备的沟通模式。而近年来,手势识别技术作为一…...
【CSS】小球旋转loading加载动画
效果 css小球旋转loading动画 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>Document<…...
Leetcode经典题6--买卖股票的最佳时机
买卖股票的最佳时机 题目描述: 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。…...
BA是什么?
目录 1.EKF的步骤 一、问题定义与模型建立 二、线性化处理 三、应用卡尔曼滤波 四、迭代与收敛 五、结果评估与优化 注意事项 2.BA问题的步骤 一、问题定义与数据准备 二、构建优化模型 三、选择优化算法 四、执行优化过程 五、结果评估与优化 六、应用与验证 1.…...
【IDEA】报错:Try to run Maven import with -U flag (force update snapshots)
问题 IDEA运行项目报错:Try to run Maven import with -U flag (force update snapshots) 原因 IDEA 的项目运行绑定的maven有问题, 解决问题 检查项目绑定的maven配置...
MATLAB提供的窗函数
加窗法 为什么使用加窗法? 在数字滤波器设计和频谱估计中,加窗函数的选择对于整体结果的质量有重大影响。加窗的主要作用是减弱因无穷级数截断而产生的吉布斯现象的影响。 windowDesigner 六种常见的窗函数 根据离散时间傅里叶变换的乘法性质&a…...
git 使用配置
新拿到机器想配置git 获取代码权限,需要的配置方法 1. git 配置用户名和邮箱 git config --global user.name xxxgit config --global user.email xxemail.com 2. 生成ssh key ssh-keygen -t rsa -C "xxemail.com" 3. 获取ssh key cat ~/.ssh/id_rsa.…...
【深度学习】深入解析长短期记忆网络(LSTMs)
长短期记忆网络(Long Short-Term Memory networks, LSTMs)是一种特殊的递归神经网络(RNN),专门设计用来解决标准 RNN 在处理长序列数据时的梯度消失和梯度爆炸问题。LSTMs 在许多序列数据任务中表现出色,如…...
vue watch和computed的区别,computed和method的区别
发现宝藏 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【宝藏入口】。 在 Vue 中,watch、computed 和 methods 都是常用的响应式功能,它们的用途和工作方式有所不同。下面分别解…...
搭建高可用负载均衡系统:Nginx 与云服务的最佳实践
搭建高可用负载均衡系统:Nginx 与云服务的最佳实践 引言 在项目开发过程中,我们通常在开发和测试阶段采用单机架构进行开发和测试。这是因为在这个阶段,系统的主要目的是功能实现和验证,单机架构足以满足开发人员的日常需求&…...
FFmpeg 4.3 音视频-多路H265监控录放C++开发十九,ffmpeg复用
封装就是将 一个h264,和一个aac文件重新封装成一个mp4文件。 这里我们的h264 和 aac都是来源于另一个mp4文件,也就是说,我们会将 in.mp4文件解封装成一路videoavstream 和 一路 audioavstream,然后 将这两路的 avstream 合并成一…...
Node.js JWT认证教程
Node.js JWT认证教程 1. 项目介绍 JSON Web Token (JWT) 是一种安全的跨域身份验证解决方案,在现代Web应用中广泛使用。本教程将详细讲解如何在Node.js中实现JWT认证。 2. 项目准备 2.1 初始化项目 # 创建项目目录 mkdir nodejs-jwt-auth cd nodejs-jwt-auth# …...
nn.utils.clip_grad_value_
nn.utils.clip_grad_value_ 是 PyTorch 中的一个函数,用于在训练过程中对模型的梯度进行裁剪,以防止梯度爆炸(gradient explosion)问题。该函数对梯度的每个元素进行裁剪,将其限制在一个指定的最大绝对值范围内。裁剪后…...
Java后端面试模板(技术面)
1、自我介绍模板 面试官您好!我是来自----大学计算机学院的一名大三学生,我的名字叫—。 在大学期间,我主要自学了一些主流的Java技术栈,其中主要包括:Java主流的框架:Spring MVC Spring Boot Spring Clou…...
【大语言模型】ACL2024论文-24 图像化歧义:Winograd Schema 挑战的视觉转变
【大语言模型】ACL2024论文-24 图像化歧义:Winograd Schema 挑战的视觉转变 目录 文章目录 【大语言模型】ACL2024论文-24 图像化歧义:Winograd Schema 挑战的视觉转变目录摘要研究背景问题与挑战如何解决核心创新点算法模型实验效果(包含重要…...
Docker 安装和使用
#Docker 安装和使用 文章目录 1. 安装2. 干掉讨厌的 sudo3. 使用镜像源3.1. 使用 upstart 的系统3.2. 使用 systemd 的系统 4. 基本使用4.1. 容器操作4.2. 镜像操作 5. 网络模式说明5.1. bridge 模式5.2. host 模式5.3. container 模式5.4. none 模式 6. 查看 Docker run 启动参…...
nginx网站服务
nginx介绍: 1、高并发,轻量级的web服务软件 2、稳定性高,系统资源消耗率低 对http的高并发处理能力高,单台物理服务器可以支持30000-50000个并发。 一般来说在工作中,单台的并发一般在20000. nginx的功能介绍&…...
MATLAB 手写判断点在多边形内外的2种方法(87)
MATLAB 手写判断点在多边形内外-方法1(87) 一、算法介绍二、算法实现1.方法1(代码+测试)2.方法2(代码+测试)三、结果一、算法介绍 手动实现两种方法,判断点在多边形的内部还是外部, 具体实现和测试代码如下,使用前请自行验证。(代码复制粘贴即可使用) 二、算法实现…...