pythonOpenCV篇:0基础带你python入门之常用函数
① 二值化函数
- 功能:将图像转换为二值图像(黑白图像),将像素值分为两种类别:前景(白)和背景(黑)。
- 函数:
cv2.threshold()
- 参数:
src
:输入图像(通常为灰度图像)。thresh
:阈值值,用于将像素分割为前景和背景。maxval
:满足条件的像素值赋值为此值(通常为255)。type
:阈值类型,例如:cv2.THRESH_BINARY
:大于阈值的像素赋值为maxval
,否则为0。cv2.THRESH_BINARY_INV
:反向二值化。cv2.THRESH_TRUNC
:大于阈值的像素赋值为阈值,其余保持不变。cv2.THRESH_TOZERO
:小于阈值的像素赋值为0。cv2.THRESH_TOZERO_INV
:大于阈值的像素赋值为0。
- 返回值:
retval
:实际使用的阈值(当选择 Otsu 或自适应阈值时有意义)。dst
:二值化后的图像。
- 应用:目标检测、边缘检测、文档处理等。
- 代码:
import cv2# 读取图像文件 img = cv2.imread("./lena.png") # 从当前目录读取名为 "lena.png" 的图像文件 cv2.imshow("flower", img) # 显示原始图像,窗口标题为 "flower"# 将彩色图像转换为灰度图像 img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 使用 OpenCV 的颜色转换函数,将图像从 BGR 转为灰度 cv2.imshow("gray", img_gray) # 显示灰度图像,窗口标题为 "gray"# 设置二值化的阈值 thresh = 120 # 阈值设为 120,低于该值的像素归为 0,高于该值的像素归为 255# 手动实现基于阈值的二值化 img_binary = img_gray # 将灰度图赋值给新的变量 img_binary for i in range(img_gray.shape[0]): # 遍历图像的每一行for j in range(img_gray.shape[1]): # 遍历图像的每一列if img_binary[i][j] <= thresh: # 如果像素值小于等于阈值pass # 此处原本应该将像素值设为 0,但被注释掉了(什么都不做)# img_binary[i][j] = 0 # 手动将像素值设置为 0else: # 如果像素值大于阈值img_binary[i][j] = 255 # 手动将像素值设置为 255(白色)# 使用 OpenCV 自带的阈值函数实现二值化(此部分代码被注释掉) # ret, img_binary = cv2.threshold(img_gray, 200, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU) # 说明: # ret:实际使用的阈值(当使用 Otsu 方法时,自动计算得到)。 # img_binary:二值化后的图像。 # cv2.THRESH_BINARY:普通二值化,像素值高于阈值设为最大值(255),否则为 0。 # cv2.THRESH_OTSU:自动计算全局最佳阈值。# 显示二值化后的图像 cv2.imshow("threshold ", img_binary) # 显示手动二值化后的图像,窗口标题为 "threshold"# 等待用户按键,随后关闭窗口 cv2.waitKey(0) # 等待用户按下任意键,不限制时间
② 自适应二值化函数
- 功能:对光照不均匀的图像进行二值化,使用局部区域的统计信息来计算阈值。
- 函数:
cv2.adaptiveThreshold()
- 参数:
src
:输入图像(必须是灰度图)。maxValue
:满足条件的像素值赋值为此值(通常为255)。adaptiveMethod
:自适应阈值计算方法:cv2.ADAPTIVE_THRESH_MEAN_C
:取邻域均值作为阈值。cv2.ADAPTIVE_THRESH_GAUSSIAN_C
:取邻域高斯加权均值作为阈值。
thresholdType
:阈值类型(通常为cv2.THRESH_BINARY
或cv2.THRESH_BINARY_INV
)。blockSize
:邻域大小(必须为奇数)。C
:常量,用于调整阈值结果。
- 返回值:
dst
:自适应二值化后的图像。
- 应用:场景文字检测、身份证/票据识别、医学影像处理。
- 代码:
import cv2 # 导入 OpenCV 库,用于图像处理# 读取图像 image = cv2.imread("./lena.png") # 从当前目录读取名为 "lena.png" 的图像文件(彩色图像) # cv2.imshow("flower", image) # 如果需要显示原图,可以取消注释此行,窗口标题为 "flower"# 将彩色图像转换为灰度图像 img_gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) # 使用 OpenCV 的颜色转换函数,将 BGR 彩色图像转为灰度图像 cv2.imshow("gray", img_gray) # 显示灰度图像,窗口标题为 "gray"# 使用 Otsu 方法进行全局阈值化 ret, img_binary = cv2.threshold(img_gray, # 输入图像,必须是灰度图像200, # 手动设置的初始阈值(Otsu 会自动调整,此值会被忽略)255, # 满足条件的像素值设置为 255cv2.THRESH_BINARY + cv2.THRESH_OTSU # 二值化模式为 Otsu 和普通二值化的组合 ) # cv2.imshow("threshold", img_binary) # 如果需要显示 Otsu 二值化结果,可以取消注释此行,窗口标题为 "threshold"# 使用自适应二值化方法 image_np_adaptive = cv2.adaptiveThreshold(img_gray, # 输入图像,必须是灰度图像255, # 满足条件的像素值设置为 255cv2.ADAPTIVE_THRESH_GAUSSIAN_C, # 使用高斯加权的邻域均值来计算局部阈值cv2.THRESH_BINARY, # 二值化模式为普通二值化7, # 邻域大小(blockSize),必须为奇数,例如 7 表示 7×7 的窗口5 # 常量 C,最终阈值为计算出的局部阈值减去 C ) cv2.imshow("image_np_adaptive", image_np_adaptive) # 显示自适应二值化后的图像,窗口标题为 "image_np_adaptive"# 等待用户按键,随后关闭所有窗口 cv2.waitKey(0) # 等待用户按下任意键,不限制时间
③ 腐蚀函数
- 功能:减少图像中的白色区域(前景),去除小的噪声点或断开小的连接。
- 函数:
cv2.erode()
- 参数:
src
:输入图像(二值图像或灰度图像)。kernel
:结构元素(形状和大小由cv2.getStructuringElement()
定义)。iterations
:腐蚀操作的次数。
- 返回值:
dst
:腐蚀后的图像。
- 应用:去除噪声、边缘提取、分离连通物体等。
- 代码:
import cv2 # 导入 OpenCV 库,用于图像处理# 读取图像 image_binary = cv2.imread("./morph.png") # 从当前目录读取名为 "morph.png" 的图像文件 # 注意:这里假设图像是二值图像(黑白图像),如果图像是彩色或灰度图,需要先进行预处理。# 创建结构元素(内核) image_1 = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, # 内核形状为椭圆(10, 10) # 内核大小为 10×10 像素 ) # 说明: # `cv2.getStructuringElement()` 用于创建形态学操作的结构元素(内核)。 # 参数 `cv2.MORPH_ELLIPSE` 表示使用椭圆形内核。其他可选形状包括: # - `cv2.MORPH_RECT`:矩形 # - `cv2.MORPH_CROSS`:交叉形 # 内核的大小对形态学操作的结果影响很大,较大的内核会产生更显著的效果。# 使用腐蚀操作处理图像 image_erode = cv2.erode(image_binary, # 输入图像,通常为二值图像image_1 # 结构元素(内核) ) # 说明: # `cv2.erode()` 是 OpenCV 的腐蚀函数,用于减少图像中前景(白色区域)的面积。 # 通过结构元素内核,腐蚀操作会移除边缘上的白色像素。 # 对于 10×10 的椭圆内核,腐蚀操作会缩小前景区域,并去除小的噪声。# 显示腐蚀后的图像 cv2.imshow("image_erode", image_erode) # 显示腐蚀后的图像,窗口标题为 "image_erode"# 显示原始图像 cv2.imshow("image_binary", image_binary) # 显示原始图像,窗口标题为 "image_binary"# 等待用户按键后关闭窗口 cv2.waitKey(0) # 等待用户按下任意键
④ 膨胀函数
- 功能:增加图像中的白色区域(前景),填补断裂的区域或小孔。
- 函数:
cv2.dilate()
- 参数:
src
:输入图像(二值图像或灰度图像)。kernel
:结构元素。iterations
:膨胀操作的次数。
- 返回值:
dst
:膨胀后的图像。
- 应用:增强物体区域、填充空隙、形态学处理等。
- 代码:
import cv2 # 导入 OpenCV 库,用于图像处理# 读取图像 image_binary = cv2.imread("./lena.png") # 从当前目录读取名为 "lena.png" 的图像文件(彩色图像)# 将彩色图像转换为灰度图像 image_gray = cv2.cvtColor(image_binary, cv2.COLOR_BGR2GRAY) # 使用 OpenCV 的颜色转换函数,将 BGR 图像转为灰度图像# 自适应二值化 image_np_adaptive = cv2.adaptiveThreshold(image_gray, # 输入灰度图像255, # 满足条件的像素值设置为 255cv2.ADAPTIVE_THRESH_GAUSSIAN_C, # 使用高斯加权的邻域均值计算局部阈值cv2.THRESH_BINARY, # 二值化模式为普通二值化7, # 邻域大小(blockSize),必须是奇数,这里为 7×7 的窗口5 # 常量 C,用于调整阈值(阈值 = 局部均值 - C) ) # 自适应二值化适用于光照不均匀的图像处理。参数 `blockSize` 和 `C` 会直接影响二值化结果。# 创建形态学操作的结构元素(内核) kernal = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, # 内核形状为椭圆形(4, 4) # 内核大小为 4×4 像素 ) # 注意:较小的内核会对图像做出细微的形态学改变,较大的内核会显著改变图像形状。# 腐蚀操作 image_erode = cv2.erode(image_np_adaptive, # 输入二值图像(经过自适应二值化的图像)kernal # 使用的内核 ) # `cv2.erode()` 会减少前景(白色区域)的面积,移除边缘上的噪声点或小的白色区域。 # 腐蚀操作通常用于消除小噪声或分离相连的物体。# 膨胀操作 image_erode_dilate = cv2.dilate(image_erode, # 输入图像(已经腐蚀过的图像)kernal # 使用的内核 ) # `cv2.dilate()` 会增加前景(白色区域)的面积,填充空洞或连接断裂的部分。 # 腐蚀和膨胀结合使用可以实现开运算(消除小噪声)或闭运算(填补小空洞)。# 显示腐蚀后的图像 cv2.imshow("image_erode", image_erode) # 显示腐蚀处理后的图像,窗口标题为 "image_erode"# 显示原始彩色图像 cv2.imshow("image_binary", image_binary) # 显示原始图像,窗口标题为 "image_binary"# 显示腐蚀后再膨胀的图像 cv2.imshow("image_erode_dilate", image_erode_dilate) # 显示膨胀处理后的图像,窗口标题为 "image_erode_dilate"# 等待用户按键后关闭窗口 cv2.waitKey(0) # 等待用户按下任意键,窗口保持打开
⑤ 仿射变换函数
- 功能:对图像进行线性变换,如旋转、缩放、平移等。
- 函数:
cv2.warpAffine()
- 参数:
src
:输入图像。M
:2x3 的仿射变换矩阵(通过cv2.getAffineTransform()
生成)。dsize
:输出图像的尺寸(宽度和高度)。flags
:插值方法(如cv2.INTER_LINEAR
)。borderMode
和borderValue
:用于处理边界像素。
- 返回值:
dst
:变换后的图像。
- 应用:图像旋转、缩放、平移、视角调整等。
- 代码:
import numpy as np # 导入 NumPy,用于数值计算(此处未使用,但是常见的图像处理工具库) import cv2 # 导入 OpenCV 库,用于图像处理# 读取图像 image_binary = cv2.imread("./lena.png") # 从当前目录读取名为 "lena.png" 的图像文件(彩色图像)# 将彩色图像转换为灰度图像 image_gray = cv2.cvtColor(image_binary, cv2.COLOR_BGR2GRAY) # 使用 OpenCV 的颜色转换函数,将 BGR 图像转为灰度图像# 自适应二值化 image_np_adaptive = cv2.adaptiveThreshold(image_gray, # 输入灰度图像255, # 满足条件的像素值设置为 255cv2.ADAPTIVE_THRESH_GAUSSIAN_C, # 使用高斯加权的邻域均值计算局部阈值cv2.THRESH_BINARY, # 二值化模式为普通二值化7, # 邻域大小(blockSize),必须是奇数,这里为 7×7 的窗口5 # 常量 C,用于调整阈值(阈值 = 局部均值 - C) ) # 自适应二值化适用于光照不均匀的图像处理。参数 `blockSize` 和 `C` 会直接影响二值化结果。# 创建形态学操作的结构元素(内核) kernal = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, # 内核形状为椭圆形(4, 4) # 内核大小为 4×4 像素 ) # 注意:较小的内核会对图像做出细微的形态学改变,较大的内核会显著改变图像形状。# 腐蚀操作 image_erode = cv2.erode(image_np_adaptive, # 输入二值图像(经过自适应二值化的图像)kernal # 使用的内核 ) # `cv2.erode()` 会减少前景(白色区域)的面积,移除边缘上的噪声点或小的白色区域。 # 腐蚀操作通常用于消除小噪声或分离相连的物体。# 膨胀操作 image_erode_dilate = cv2.dilate(image_erode, # 输入图像(已经腐蚀过的图像)kernal # 使用的内核 ) # `cv2.dilate()` 会增加前景(白色区域)的面积,填充空洞或连接断裂的部分。 # 腐蚀和膨胀结合使用可以实现开运算(消除小噪声)或闭运算(填补小空洞)。# 显示腐蚀后的图像 cv2.imshow("image_erode", image_erode) # 显示腐蚀处理后的图像,窗口标题为 "image_erode"# 显示原始彩色图像 cv2.imshow("image_binary", image_binary) # 显示原始图像,窗口标题为 "image_binary"# 显示腐蚀后再膨胀的图像 cv2.imshow("image_erode_dilate", image_erode_dilate) # 显示膨胀处理后的图像,窗口标题为 "image_erode_dilate"# 等待用户按键后关闭窗口 cv2.waitKey(0) # 等待用户按下任意键,窗口保持打开
⑥ 透视变换函数
- 功能:对图像进行透视变换,从一个视角映射到另一个视角,校正倾斜图像或提取局部内容。
- 函数:
cv2.warpPerspective()
- 参数:
src
:输入图像。M
:3x3 的透视变换矩阵(通过cv2.getPerspectiveTransform()
生成)。dsize
:输出图像的尺寸。flags
、borderMode
和borderValue
:与仿射变换类似。
- 返回值:
dst
:透视变换后的图像。
- 应用:文档矫正、车牌识别、场景理解等。
- 代码:
import cv2 # 导入 OpenCV 库,用于图像处理 import numpy as np # 导入 NumPy 库,用于数组操作# 读取图像 image = cv2.imread("./card.png") # 从当前目录中读取名为 "card.png" 的图像文件# 检查图像是否成功加载 if image is None: # 如果图像加载失败print("Error: Image not found. Please check the file path.") # 输出错误信息exit() # 终止程序# 定义原图中的四个点和目标点 point1 = np.array([[200, 100], [700, 150], [140, 400], [650, 460]], dtype=np.float32) # 说明: # `point1` 是原始图像中感兴趣区域(ROI)的四个顶点,表示需要校正的区域。 # 每个点用 (x, y) 坐标表示。 # 例如,(200, 100) 表示原图中左上角的一个点。point2 = np.array([[0, 0], [image.shape[1], 0], [0, image.shape[0]], [image.shape[1], image.shape[0]]], dtype=np.float32) # 说明: # `point2` 是透视变换后图像的目标点,定义了变换后的矩形区域。 # (0, 0) 是左上角,(image.shape[1], 0) 是右上角,依次类推。 # `image.shape[1]` 表示图像宽度,`image.shape[0]` 表示图像高度。# 获取透视变换矩阵 M = cv2.getPerspectiveTransform(point1, point2) # 说明: # `cv2.getPerspectiveTransform()` 函数计算透视变换矩阵。 # 参数: # - `point1`:原始图像中的四个点。 # - `point2`:目标图像中的四个点。 # 返回值: # - `M` 是一个 3x3 的透视变换矩阵。# 进行透视变换 image_s = cv2.warpPerspective(image, M, (image.shape[1], image.shape[0])) # 说明: # `cv2.warpPerspective()` 函数对图像应用透视变换。 # 参数: # - `image`:输入图像。 # - `M`:透视变换矩阵。 # - `(image.shape[1], image.shape[0])`:输出图像的大小(宽度、高度)。 # 返回值: # - `image_s` 是经过透视变换后的图像。# 显示原图和矫正后的图像 cv2.imshow("Original Image", image) # 显示窗口标题为 "Original Image" 的原始图像 cv2.imshow("Corrected Image", image_s) # 显示窗口标题为 "Corrected Image" 的矫正后图像# 等待按键关闭窗口 cv2.waitKey(0) # 等待用户按下任意键后关闭所有窗口 cv2.destroyAllWindows() # 销毁所有窗口
相关文章:
pythonOpenCV篇:0基础带你python入门之常用函数
① 二值化函数 功能:将图像转换为二值图像(黑白图像),将像素值分为两种类别:前景(白)和背景(黑)。函数:cv2.threshold()参数: src:输…...
第十七届山东省职业院校技能大赛 中职组“网络安全”赛项资源任务书样题③
第十七届山东省职业院校技能大赛 中职组“网络安全”赛项资源任务书样题③ 模块A 基础设施设置与安全加固(200分)A-1 登录安全加固(Windows, Linux)A-2 Nginx安全策略(Linux)A-3日志监控(Windows)A-4中间件…...
【每日一题 基础题】验证回文串
LCR 018. 验证回文串 验证回文串 给定一个字符串 s ,验证 s 是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 本题中,将空字符串定义为有效的回文串 。 验证回文串 LCR 018. 验证回文串方法一:**筛选 判断…...
【Hadoop】-- hadoop3.x default port
Hadoop 3.x 修改了一些以前常用的默认端口,完整的默认端口列表,可点击下面配置文件获取信息: core-default.xmlhdfs-default.xmlhdfs-rbf-default.xmlyarn-default.xml...
SQL Server:只有MDF文件,如何附加数据库
第一步:先新建一个同名数据库,然后停止sql服务,删除新建数据库.ldf文件。 第二步:将要附加的数据库的.mdf文件覆盖刚新建的.mdf文件,并重启sql服务。 第三步:这时数据库DATA目录下只有一个.mdf文件…...
深入理解代理模式(Proxy):静态代理、动态代理与AOP
目录 1. 代理模式简介2. 静态代理3. 动态代理 3.1 JDK动态代理3.2 CGLIB动态代理 4. 面向切面编程(AOP)5. 实战示例6. 总结与最佳实践 1. 代理模式简介 代理模式是一种结构型设计模式,它允许我们提供一个代理来控制对其他对象的访问。代理模式在不改变原始类代码…...
项目中如何选择JVM垃圾回收器?
大家好,我是锋哥。今天分享关于【项目中如何选择JVM垃圾回收器?】面试题。希望对大家有帮助; 项目中如何选择JVM垃圾回收器? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 在一个项目中选择合适的 JVM 垃圾回收器 (Garbage Collector, GC…...
如何借助5G网关实现油罐车安全在线监测
油罐车是常见的特种运输车辆,用以运送各种汽油、柴油、原油等油品,运输危险系数大,而且由于油罐车需要经常行驶在城区道路,为城市各个加油站点、企业工厂运输补充所需油料,因此也是危化品运输车辆的重点监测和管控对象…...
Edge SCDN的独特优势有哪些?
强大的边缘计算能力 Edge SCDN(边缘安全加速)是酷盾安全推出的边缘集分布式 DDoS 防护、CC 防护、WAF 防护、BOT 行为分析为一体的安全加速解决方案。通过边缘缓存技术,智能调度使用户就近获取所需内容,为用户提供稳定快速的访问…...
在Goland中对goroutine协程断点调试
在Goland中对goroutine协程断点调试 环境: Goland 参考了 chatgpt 的回复 进行断点调试的代码 package mainimport ("fmt""sync""time" )// worker 模拟处理任务 func worker(id int, wg *sync.WaitGroup) {defer wg.Done() // 确保任务完成后…...
解密分布式锁:保障系统一致性的关键
作者:后端小肥肠 🍇 我写过的文章中的相关代码放到了gitee,地址:xfc-fdw-cloud: 公共解决方案 🍊 有疑问可私信或评论区联系我。 🥑 创作不易未经允许严禁转载。 目录 1. 前言 2. 为何要使用分布式锁&…...
Redis 击穿、穿透与雪崩:深度解析与应对策略
在使用 Redis 作为缓存的系统架构中,缓存击穿、穿透和雪崩是三个常见且可能对系统性能产生严重影响的问题。深入理解这些问题并掌握有效的应对策略对于构建稳定、高效的系统至关重要。 一、缓存击穿 (一)问题描述 缓存击穿是指一个热点 key…...
8086处理器的寻址方式
概念 在计算机系统中,处理器操作和处理的是数值,那么,必定涉及数值从哪里来,处理后送到哪里去,这称为寻址方式(Addressing Mode)。 简单地说,寻址方式就是如何找到要操作的数据,以及如何找到存…...
Mask实现裁剪的原理浅析
简单来说,就是Mask会设置继承了MaskableGraphic的组件的Shader属性,进行特定的模板测试 一张普通的Image,当不挂Mask组件时,其默认Shader的模板缓存属性是这样的 当挂载上Mask时,会改变 Stencil ID变成了1ÿ…...
每隔一秒单片机向电脑发送一个16进制递增数据
SCON0x50 SM00 SM11(工作方式为方式一) REN1允许单片机从电脑接收数据 TB8 RB8 SM2是方式2和方式3直接配置为0 TI为发送中断请求标志位 由硬件配置为1 必须由 软件复位为0,RI为接收中断请求标志位,同理TI UART.c #include &l…...
逆向攻防世界CTF系列56-easy_Maze
逆向攻防世界CTF系列56-easy_Maze 64位无壳,看题目就知道是迷宫问题了 int __fastcall main(int argc, const char **argv, const char **envp){__int64 v3; // raxint v5[7][7]; // [rsp0h] [rbp-270h] BYREFint v6[104]; // [rspD0h] [rbp-1A0h] BYREFv6[52] 1…...
【Linux网络编程】应用层:HTTP协议 | URL | 简单实现一个HTTP服务器 | 永久重定向与临时重定向
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站 🌈个人主页: 南桥几晴秋 🌈C专栏: 南桥谈C 🌈C语言专栏: C语言学习系…...
电压调整电路汇总
目录: 一、LDO 1、LM1117 2、NCV33275 3、TLE42764 4、TPS7B67xx-Q1 5、总结 二、DCDC转换器 1、LM2576与LM2596 2、MC34063 一、LDO 1、LM1117 LM1117 是一款在 800mA 负载电流下具有 1.2V 压降的低压降稳压器。 LM1117 提供可调节电压版本,…...
day28 文件IO及进程线程基础
讨论光标共享情况 1.dup和dup2定义变量赋值都共享光标 2.使用两个描述符调用两次open函数打开同一个文件,不共享光标 #include <myhead.h>int main(int argc, const char *argv[]) {//1、描述符赋值给新的变量char buff[1024] "abcdefg";int ne…...
【Azure 架构师学习笔记】- Azure Function (1) --环境搭建和背景介绍
本文属于【Azure 架构师学习笔记】系列。 本文属于【Azure Function 】系列。 前言 随着无服务计算的兴起和大数据环境中的数据集成需求, 需要使用某些轻量级的服务,来实现一些简单操作。因此Azure Function就成了微软云上的一个必不可少的组成部分。 …...
前端文件下载
这里写自定义目录标题 前端文件下载方法使用a标签使用iframe标签二进制流 前端文件下载方法 使用a标签 /*** 文件下载方法 使用a标签* 存在浏览器下载时,太快的话,会取消上次的下载请求* param {*} href* param {*} filename*/ export function downlo…...
前端成长之路:HTML(3)
在HTML中,有列表标签。列表最大的特点是整齐、简洁、有序,用列表进行布局会更加自由方便。根据使用的情景不同,可以将列表分为三大类:无序列表、有序列表和自定义列表。 无序列表 在HTML中使用<ul>标签定义一个无序列表&a…...
无人机自动机库的功能与作用!
一、无人机自动机库的功能 智能停放与管理 无人机自动机库为无人机提供了一个安全、可靠的停放环境。通过先进的感知技术和安全防护措施,它能够实时监测周围环境,确保无人机免受恶劣天气或潜在风险的侵害。 无人机在机库内可以实现智能停放࿰…...
ubuntu 新建脚本shell并增加图标 双击应用实现python运行
1.使用nano创建shell脚本文件 需要在终端窗口中输入“nano”以打开文本编辑器。 nano 在创建脚本文件前,我们要了解脚本文件是如何运行的: 直接运行:直接在终端直接输入需要运行的脚本文件名称,系统或用缺省版本的shell运行脚…...
ANR 分析SOP
遇到ANR问题不要慌,大部分情况下可能是系统or测试手段问题,我们按照如下关键字排查定位 文章目录 1 是否是 heapdump 导致?1.1 dump开始1.2 dump结束 1 是否是 heapdump 导致? 使用 hprof: heap dump 关键词过滤,在d…...
COLA学习之环境搭建(三)
小伙伴们,你们好,我是老寇,上一节,我们学习了COLA代码规范,继续跟老寇学习COLA环境搭建 首先,打开GitHub,搜索 COLA 请给这个COLA项目点个Star,养成好习惯,然后Fork到自…...
CSS输入框动态伸缩动效
前言 下面我们将会做出如下图输入框样式,并且附上组件代码,有特殊需求的可以自行优化同理,下拉框的话只要把el-input标签修改掉即可 MyInput组件 <template><div class"my-input" click.stop"showInput !showInput…...
hbuilder 安卓app手机调试中基座如何设置
app端使用基座 手机在线预览功能 1.点击运行 2.点击运行到手机或者模拟器 3.制作自定义调试基座 4.先生成证书【可以看我上一篇文档写的有】,点击打包 5.打包出android自定义调试基座【android_debug.apk】,【就跟app打包一样需要等个几分钟】 6.点击运行到手…...
探索视觉与语言模型的可扩展性
✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…...
sock_recvmsg函数
sock_recvmsg 是一个在 Linux 内核中用于处理接收网络数据的函数。它通常与套接字 (socket) 操作相关,特别是在网络协议栈中用于处理从网络中接收到的数据。这个函数是内核的一部分,提供了一种机制把接收到的数据从网络协议栈转移到用户空间,或者在内核内进一步处理。 以下是…...
网站导航上的图片做多大尺寸/直通车怎么开
2019独角兽企业重金招聘Python工程师标准>>> 前面介绍Mule ESB使用的系列文章中我们使用了自定义的Java Transformer和Java Component,用于接收和处理Mule Message。然而我们使用的Transformer和Component都必须实现AbstractTransformer接口或者org.mule…...
网页制作培训班培训/网站站长seo推广
标记、元素、链接、路径 01.HTML和CSS是用来创建网页的语言。 02.Web服务器存储并提供由HTML和CSS创建的网页。浏览器接收网页并基于HTML和CSS 显示其中的内容。 03.HTML是超文本标记语言(HyperText Markup Language)的缩写,用来结构化网页。…...
关键词优化怎样/丽水百度seo
转自:https://www.pinlue.com/article/2021/05/2918/4511619339951.html...
网站流量数据查询/网站媒体推广
在两条独立的水平线上按给定的顺序写下 nums1 和 nums2 中的整数。 现在,可以绘制一些连接两个数字 nums1[i] 和 nums2[j] 的直线,这些直线需要同时满足满足: nums1[i] == nums2[j] 且绘制的直线不与任何其他连线(非水平线)相交。 请注意,连线即使在端点也不能相交:每个…...
wordpress the7安装教程/中视频自媒体账号注册下载
【击鼓传花】,可能是大家从小到大玩得最多的一个集体游戏了,就是几个人围成一个圈坐在一起,鼓声响起来即开始传花,鼓声一停,花传到了谁的手上就由谁来表演节目。一、游戏意义1、由于“形势所迫”,大家都会放下手中的事…...
一个网站建设域名的构思/北京最新疫情
作者:gnuhpc 出处:http://www.cnblogs.com/gnuhpc/ 1.简介 NFS(Network File System, 网络文件系统)可以通过网络将分享不同主机(不同的OS)的目录——可以通过NFS挂载远程主机的目录, 访问该目录就像访问本地目录一样! 一般而言, 使用nfs能够方便地使…...