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

Opencv学习

Long time no see!哈哈,假期终于有时间做一点自己喜欢的东西了

还是想说,每天花一点时间投在自己喜欢的事情上,或者专攻一些平时不学的方向,真的很酷!

图片绘制

对于图像绘制,可以分为:图像创建(对象处理)—绘制图像(操作)—图像呈现(效果呈现)。这三个步骤又可以根据需求和习惯进行库的选取,函数运用

import numpy as np
import cv2 as cv
import matplotlib.pyplot as plt# 1 创建一个空白的图像
img = np.zeros((512,512,3), np.uint8)
# 2 绘制图形
cv.line(img,(0,0),(511,511),(55,0,0),5)
#直线起点,终点,颜色
cv.rectangle(img,(384,0),(510,128),(0,255,250),3)
#矩形左上坐标,右下坐标,颜色,宽度
cv.circle(img,(447,63), 63, (0,0,255), -1)
#圆心,半径
font = cv.FONT_HERSHEY_SIMPLEX
#绘制字体
cv.putText(img,'华 ,H_lilium ',(10,500), font, 2,(200,55,255),2,cv.LINE_AA)
# font = ImageFont.truetype('simsun.ttc', 40)  # 这里使用宋体字体,你可以根据需要更改字体文件,确保字体文件存在
# cv.putText(img,'华 YU MEI',(10,500), font, 2,(200,55,255),2,cv.LINE_AA)
# 绘制中文文本
# 3 图像展示
img_rgb = cv.cvtColor(img, cv.COLOR_BGR2RGB)
plt.imshow(img_rgb)
plt.rcParams['font.sans-serif']=['SimHei']#设置 matplotlib 的字体为 SimHei,这是一种支持中文的字体。
plt.title('匹配结果')
plt.xticks([]), plt.yticks([])#坐标隐藏
plt.show()

1.图像创建

一般创建出来的图像,可以控制大小、颜色通道(BGR)、色彩

# 读取图像
img = np.zeros((520, 512, 3), np.uint8)
img[:] = 255#可使创建背景图像转为白色,更容易观察颜色与形状

2.绘制函数

本次举例了直线,矩形,圆绘制。

绘制图像的函数其实很容易理解,万能公式:

cv.图像英文(操作对象img,关键点坐标,大小,颜色,线条粗细)

# 2 绘制图形
cv.line(img,(0,0),(511,511),(55,0,0),5)
#直线起点,终点,颜色
cv.rectangle(img,(384,0),(510,128),(0,255,250),3)
#矩形左上坐标,右下坐标,颜色,宽度
cv.circle(img,(447,63), 63, (0,0,255), -1)
#圆心,半径


关于字体展示有一个小点,可以注意到,输出的中文变成“?”无法识别,这是 因为选择的字体font确实汉字。我在网上找到了解决办法,不过感觉有点麻烦,要加入库,引入一个新font,还要转换图像类型。不过没关系,这也算是文字传承吧嘿嘿

import cv2 as cv
from PIL import Image, ImageDraw, ImageFont
import numpy as np# 读取图像
img = np.zeros((520, 512, 3), np.uint8)
img[:] = 255
# 将 OpenCV 图像转换为 PIL 图像
pil_img = Image.fromarray(cv.cvtColor(img, cv.COLOR_BGR2RGB))
# 创建一个可绘制对象
draw = ImageDraw.Draw(pil_img)
# 设置字体和字体大小
font = ImageFont.truetype('simsun.ttc', 40)  # 这里使用宋体字体,你可以根据需要更改字体文件,确保字体文件存在
# 绘制中文文本
draw.text((10, 50), '华 ,H_lilium', (70, 55, 150), font=font)#RGB
# 将 PIL 图像转换回 OpenCV 图像
img = cv.cvtColor(np.array(pil_img), cv.COLOR_RGB2BGR)# 显示图像
cv.imshow('Image with Chinese Text', img)
cv.waitKey(0)
cv.destroyAllWindows()

图像展示

关键的三段函数,创建图像显示窗口+显示时间+执行指令

# 显示图像
cv.imshow('Image with Chinese Text', img)
cv.waitKey(0)
cv.destroyAllWindows()

图片加法+混合

1.加法

加法可以分两类,Opencv/NumPy,简单的0.5+0.5,效果其实并不理想

注意,1.黑色部分相加无法体现  2.相加图像必须大小规格一样  3.可以利用掩膜色彩


#加法函数# 使用 OpenCV 的 add 函数进行图像加法
img3 = cv2.add(img2, img1)
# 使用 NumPy 的加法进行图像加法
img4 = img2 + img1
import cv2
import numpy as np
import matplotlib.pyplot as plt# 读取图像
img1 = cv2.imread("D1.jpg")
img2 = cv2.imread("D3(1).jpg")# 将 img2 转换为 HSV 颜色空间
hsv = cv2.cvtColor(img2, cv2.COLOR_BGR2HSV)# 定义红色的 HSV 范围
minRed = np.array([0, 50, 50])
maxRed = np.array([60, 255, 255])# 创建掩膜
mask = cv2.inRange(hsv, minRed, maxRed)# 提取红色部分
red = cv2.bitwise_and(img2, img2, mask=mask)# 显示提取的红色部分
cv2.imshow('red', red)# 等待按键事件
cv2.waitKey(0)# 关闭所有 OpenCV 窗口
cv2.destroyAllWindows()# 使用 OpenCV 的 add 函数进行图像加法
img3 = cv2.add(img2, img1)# 使用 NumPy 的加法进行图像加法
img4 = img2 + img1# 再次使用 OpenCV 的 add 函数进行图像加法
img5 = cv2.add(img1, img2)# 创建子图
fig, axes = plt.subplots(nrows=2, ncols=2, figsize=(10, 8), dpi=100)# 显示原始图像
axes[0, 0].imshow(img1[:, :, ::-1])
axes[0, 0].set_title('原始图像 1')# 显示原始图像
axes[0, 1].imshow(img2[:, :, ::-1])
axes[0, 1].set_title('原始图像 2')# 显示 OpenCV 加法结果
axes[1, 0].imshow(img3[:, :, ::-1])
axes[1, 0].set_title('OpenCV 加法')# 显示 NumPy 加法结果
axes[1, 1].imshow(img4[:, :, ::-1])
axes[1, 1].set_title('NumPy 加法')# 调整子图布局
plt.tight_layout()# 显示图像
plt.show()

2.混合

图像混合根据占比调制参数,对图像要求与加法一致。混合更能满足对图像的融洽处理
#图像混合
img5=cv2.addWeighted(img1,0.3,img2,0.7,0)

3.数列处理

引入数列来呈现图像,能更清晰地了解图像的变化(行+列+分辨率)

# 创建子图
fig, axes = plt.subplots(nrows=2, ncols=3, figsize=(10, 8), dpi=100)# 显示原始图像
axes[0, 0].imshow(img1[:, :, ::-1])
axes[0, 0].set_title('原始图像 1')

有趣的图像绘制

在小学的时候,就对数学很感兴趣,有一次同学打趣到那我们来挑战画正17边形吧,我一口答应下来。结局是谁也没有画出正17边形,但是我却发现了一个美妙的,永远画不完的图形,当时非常兴奋,暗暗得意“我长大一定要研究清楚,然后成为一名数学家”哈哈哈,这个思想一直存活至高中,后来在学斐波那契额数列时,见到了一个极其相似的图像,我当时没有失落也没有遗憾,反而有些庆幸——我跨越了时间的限制,悄悄与不知名的人来了一次心灵意识的交汇。后来,我就手绘了这一副图,放在了我的数学错题本上,并暗自发誓“一定要用机械语言将这个美丽的图像以我的方式展示出来”

到了大学,学了编程语言,似乎一切想法都不再是遥不可及了。到了寒假,嘿嘿,我好像实现了承诺,和小小的自己也完成了一次心灵的交汇!(当然,还有豆包帮了大忙),虽然只是简单的理想图像的呈现,没有体现我的“中交线”无限绘图,而是“定点”有限次绘图,但是也是一大突破点啦!

顺势一说,为了体现这一过程,还用了动画哟

import cv2 as cv
import numpy as np
import timedef main():center = (256, 256)#定圆心radius = 230#距离圆心范围,点的半径num_points = 16#所需要的个数points = []#空列表用于储存点for i in range(num_points):# 计算每个点的角度angle = 2 * np.pi * i / num_points#2Π/点数# 计算点的坐标x = center[0] + (radius + 1) * np.cos(angle)y = center[1] + (radius + 1) * np.sin(angle)#三角函数中余弦正弦points.append((int(x), int(y)))# 创建一个空白图像img = np.zeros((512, 512, 3), np.uint8)img[:]=255cv.namedWindow('Image')for point in points:cv.circle(img, point, 3, (225, 10, 10), -1)cv.imshow('Image', img)cv.waitKey(100)  # 显示 500 毫秒for i in range(len(points)):for j in range(i + 1, len(points)):cv.line(img, points[i], points[j], (220, 110, 0), 1)#BGRcv.imshow('Image', img)cv.waitKey(100)  # 显示 500 毫秒cv.waitKey(0)cv.destroyAllWindows()if __name__ == "__main__":main()

小小心得

在学这个操作的时候,我就感觉到现在所学的图像处理,就是对早就接触过的美图软件进行一次理性、专业的解剖哈哈,这里的图片加法和混合就像图片叠加,之前的图像特定颜色通道选取就是低级一点的滤镜。

当然图像处理的核心就是满足人的需求,而人的需求也是推进技术学习,技术进步的一大动力

                                                    ——解锁2025年关键词《相信》

                                                      我相信:念念不忘,必有回响

相关文章:

Opencv学习

Long time no see!哈哈,假期终于有时间做一点自己喜欢的东西了 还是想说,每天花一点时间投在自己喜欢的事情上,或者专攻一些平时不学的方向,真的很酷! 图片绘制 对于图像绘制,可以分为:图像创…...

数学大模型MAmmoTH:通过混合说明调整建立数学通才模型

向悦和陈文虎是该项目的主要作者。他们这个项目推出 MAmmoTH,这是一系列专为解决一般数学问题而定制的开源大型语言模型 (LLM)。 MAmmoTH 模型在 MathInstruct 上进行训练,MathInstruct 是我们精心策划的指令调整数据集。 MathInstruct 已编译 来自 13 个…...

springboot 配置多数据源以及动态切换数据源

场景 我们springboot项目,通常会有多个数据库,例如mysql,vertica,postgresql等等数据库,通常我们需要动态切换使用我们想要的数据库,这时候就需要配置多数据源了 多数据源特性 支持多数据库类型:例如,同…...

计算机图形学:实验三 光照与阴影

一、程序功能设计 设置了一个3D渲染场景,支持通过键盘和鼠标控制交互,能够动态调整光源位置、物体材质参数等,具有光照、阴影和材质效果的场景渲染。 OpenGL物体渲染和设置 创建3D物体:代码中通过 openGLObject 结构体表示一个…...

idea修改模块名导致程序编译出错

本文简单描述分别用Idea菜单、pom.xml文件管理项目模块module 踩过的坑: 通过idea菜单创建模块,并用idea菜单修改模块名,结构程序编译报错,出错的代码莫名奇妙。双击maven弹窗clean时,还是报错。因为模块是新建的&am…...

Arcgis国产化替代:Bigemap Pro正式发布

在数字化时代,数据如同新时代的石油,蕴含着巨大的价值。从商业决策到科研探索,从城市规划到环境监测,海量数据的高效处理、精准分析与直观可视化,已成为各行业突破发展瓶颈、实现转型升级的关键所在。历经十年精心打磨…...

RNN实现阿尔茨海默症的诊断识别

本文为为🔗365天深度学习训练营内部文章 原作者:K同学啊 一 导入数据 import torch.nn as nn import torch.nn.functional as F import torchvision,torch from sklearn.preprocessing import StandardScaler from torch.utils.data import TensorDatase…...

大数据学习(36)- Hive和YARN

&&大数据学习&& 🔥系列专栏: 👑哲学语录: 承认自己的无知,乃是开启智慧的大门 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言📝支持一下博主哦&#x1f91…...

【以音频软件FFmpeg为例】通过Python脚本将软件路径添加到Windows系统环境变量中的实现与原理分析

在Windows系统中,你可以通过修改环境变量 PATH 来使得 ffmpeg.exe 可在任意路径下直接使用。要通过Python修改环境变量并立即生效,如图: 你可以使用以下代码: import os import winreg as reg# ffmpeg.exe的路径 ffmpeg_path …...

计算机的错误计算(二百二十一)

摘要 利用一个数学解题器化简计算 实验表明,即使是数学解题器,也是一派胡言。 有一读者来信,询问数学大模型的推理事宜。现就前面的案例继续做一讨论。 例1. 化简计算摘要中算式。 下面是与一个数学解题器的对话。 点评: &am…...

小利特惠源码/生活缴费/电话费/油卡燃气/等充值业务类源码附带承兑系统

全新首发小利特惠/生活缴费/电话费/油卡燃气/等充值业务类源码附带U商承兑系统 安装教程如下 图片:...

外部flash烧写算法学习笔记(一)

一,STM32CubeProgrammer STM32下载编程工具 | STM32CubeProg介绍、下载、安装和使用教程 - 知乎 1.使用速览 2.外部烧写 二,QSPI外部烧写算法制作 STM32H7的花式玩转SPI Flash章节也更新了,含MDK下载算法制作和STM32CubeProg下载算法制作 …...

嵌入式MCU面试笔记2

目录 串口通信 概论 原理 配置 HAL库代码 1. 初始化函数 2. 数据发送和接收函数 3. 中断和DMA函数 4. 中断服务函数 串口通信 概论 我们知道,通信桥接了两个设备之间的交流。一个经典的例子就是使用串口通信交换上位机和单片机之间的数据。 比较常见的串…...

差分轮算法-两个轮子计算速度的方法-阿克曼四轮小车计算方法

四轮驱小车的话: 转向角度计算方法:float turning_angle z_angular / x_linear; // 转向角度,单位为弧度 速度的话直接用线速度 两轮驱动小车: 计算公式: leftSpeed x_linear - z_angular * ORIGINBOT_WHEEL_TRACK /…...

解释器模式

在软件开发的诸多场景中,我们有时需要处理特定领域的语言或表达式。例如,在数据库查询中,我们使用 SQL 语句来查询数据;在数学计算软件里,需要解析和计算各种数学表达式。解释器模式(Interpreter Pattern&a…...

代码随想录刷题day14(2)|(链表篇)02.07. 链表相交(疑点)

目录 一、链表理论基础 二、链表相交求解思路 三、相关算法题目 四、疑点 一、链表理论基础 代码随想录 二、链表相交求解思路 链表相交时,是结点的位置,也就是指针相同,不是结点的数值相同; 思路:定义两个指针…...

戴尔电脑用u盘重装系统_戴尔电脑用u盘重装win10系统教程

戴尔电脑用u盘重装系统?戴尔电脑这几年默认预装win10家庭版和win11家庭版。有的用户用上了预装win11家庭版的戴尔电脑,使用一段时间依然不习惯,于是想退回win10。但不知道怎么重装win10,这几年的戴尔电脑建议采用U盘方式安装系统比…...

http的请求体各项解析

一、前言 做Java开发的人员都知道,其实我们很多时候不单单在写Java程序。做的各种各样的系统,不管是PC的 还是移动端的,还是为别的系统提供接口。其实都离不开http协议或者https 这些东西。Java作为编程语言,再做业务开发时&#…...

【MARK】Cline配合FreeAPI,再薅亿点点token

说明 自从用了cline,token消耗的速度就开始起飞。各家免费的几百万Token,看起来挺多,实际用起来还是顶不住几天~ FreeAPI是个简单的替代,上下文长度还是不如官方API,所以还是推荐使用官方,这个只是玩具&a…...

如何使用CRM数据分析优化销售和客户关系?

嘿,大家好!你有没有想过为什么有些公司在市场上如鱼得水,而另一些却在苦苦挣扎?答案可能就藏在他们的销售策略和客户关系管理(CRM)系统里。今天我们要聊的就是如何通过有效的 CRM 数据分析来提升你的销售额…...

c语言数组详解

前言 一、数组的定义: 二、数组的初始化: 1.如何给数组赋初值: 1.1逐个赋值: 1.2使用花括号初始化: 1.3使用等号赋值: 2.不同的初始化方式 2.1使用循环初始化: 2.2使用默认初始化: 三…...

EasyNVR免费版已发布!EasyNVR接入海康NVR大华NVR宇视NVR天地伟业NVR接入各种IPC摄像机工业监控家庭监控

EasyNVR不用多说了,驰名已久!之前一直是收费的,不管多少个摄像机接入都是收费的,这就导致,很多个人用户,或者说是家庭用户,家里就那么两三个摄像机,想通过EasyNVR接入NAS系统&#x…...

GSI快速收录服务:让你的网站内容“上架”谷歌

辛苦制作的内容无法被谷歌抓取和展示,导致访客无法找到你的网站,这是会让人丧失信心的事情。GSI快速收录服务就是为了解决这种问题而存在的。无论是新上线的页面,还是长期未被收录的内容,通过我们的技术支持,都能迅速被…...

vue2的$el.querySelector在vue3中怎么写

这个也属于直接操作 dom 了,不建议在项目中这样操作,不过我是在vue2升级vue3的时候遇到的,是以前同事写的代码,也没办法 先来看一下对比 在vue2中获取实例是直接通过 this.$refs.xxx 获取绑定属性 refxxx 的实例,并且…...

C++ list 容器用法

C list 容器用法 C 标准库提供了丰富的功能&#xff0c;其中 <list> 是一个非常重要的容器类&#xff0c;用于存储元素集合&#xff0c;支持双向迭代器。<list> 是 C 标准模板库&#xff08;STL&#xff09;中的一个序列容器&#xff0c;它允许在容器的任意位置快速…...

双目立体校正和Q矩阵

立体校正 对两个摄像机的图像平面重投影&#xff0c;使二者位于同一平面&#xff0c;而且左右图像的行对准。 Bouguet 该算法需要用到双目标定后外参(R&#xff0c;T) 从上图中可以看出&#xff0c;该算法主要分为两步&#xff1a; 使成像平面共面 这个办法很直观&#xff…...

又是一年啊

又是一年 回顾2024一、2024的愿望二、愿望实现了吗&#xff1f;三、总结 展望2025几个愿望~~&#xff08;终于快写完了&#xff09;~~ 华丽结尾 回顾2024 一、2024的愿望 1.CSP-J上岸&#xff1b; 2.小升初上岸&#xff1b; 3.数学进入联赛班&#xff1b; 4.初一期末年级前五…...

Spring Boot 邂逅Netty:构建高性能网络应用的奇妙之旅

一、引言 在当今数字化时代&#xff0c;构建高效、可靠的网络应用是开发者面临的重要挑战。Spring Boot 作为一款强大的 Java 开发框架&#xff0c;以其快速开发、简洁配置和丰富的生态支持&#xff0c;深受广大开发者喜爱。而 Netty 作为高性能、异步的网络通信框架&#xff…...

简识JVM私有内存区域栈、数据结构

前记&#xff1a;JVM稀有内存区域栈包含&#xff1a;虚拟机栈、本地方法栈、程序计数器&#xff1b; 在JVM&#xff08;Java虚拟机&#xff09;中&#xff0c;私有内存区域栈主要指的是虚拟机栈&#xff08;VM Stack&#xff09;和本地方法栈&#xff08;Native Method Stack&…...

【C++基础】多线程并发场景下的同步方法

如果在多线程程序中对全局变量的访问没有进行适当的同步控制&#xff08;例如使用互斥锁、原子变量等&#xff09;&#xff0c;会导致多个线程同时访问和修改全局变量时发生竞态条件&#xff08;race condition&#xff09;。这种竞态条件可能会导致一系列不确定和严重的后果。…...

【优选算法】10----无重复字符的最长子串

---------------------------------------begin--------------------------------------- 题目解析&#xff1a; 看到这一类题目&#xff0c;有没有那种一眼就感觉时要用到滑动窗口的感觉&#xff0c;铁子们&#xff1f; 讲解算法原理&#xff1a; 方法一: 暴力解法&#xff…...

C语言程序设计十大排序—冒泡排序

文章目录 1.概念✅2.冒泡排序&#x1f388;3.代码实现✅3.1 直接写✨3.2 函数✨ 4.总结✅ 1.概念✅ 排序是数据处理的基本操作之一&#xff0c;每次算法竞赛都很多题目用到排序。排序算法是计算机科学中基础且常用的算法&#xff0c;排序后的数据更易于处理和查找。在计算机发展…...

26考研资料分享 百度网盘

基础班&#xff1a; 通过网盘分享的文件&#xff1a;2026【考研数学】等3个文件 链接:https://pan.baidu.com/s/1djzJiut1h0DH8WmrI05YHg?pwd1234 提取码:1234--来自百度网盘超级会员v3的分享 通过网盘分享的文件&#xff1a;01、2026【考研政治】 链接:https://pan.baidu.…...

C++ lambda表达式

目录 1.lambda表达式 1.1什么是Lambda表达式&#xff1f; 1.2Lambda表达式的语法 1.3捕捉列表 1.4函数对象与lambda表达式 1.lambda表达式 1.1什么是Lambda表达式&#xff1f; Lambda表达式是C11标准引入的一种匿名函数&#xff0c;它允许你在需要函数的地方直接编写代码…...

halo附件图片迁移到easyimage图床

前言 在使用 markdown 编写文章之后&#xff0c;markdown 内容中引用的图片都是图床的地址 部分文章是在 halo 没有使用图床前&#xff0c;就已经发布了的&#xff0c;这些图片都是直接存储在 halo 系统中的 需要将这些文章的图片全部迁移到图床上&#xff0c;这些文章的图片…...

Grafana

Grafana 是一款广泛使用的开源数据可视化与监控平台&#xff0c;通过与 Prometheus、InfluxDB、Elasticsearch 等多种数据源集成&#xff0c;提供强大的监控、数据展示和告警功能。其告警体系在及时通知系统异常、保障业务稳定性方面起到关键作用。 Grafana 告警体系概述 Graf…...

前端性能优化:HMR热更新和预获取加载

最近发现项目开发&#xff0c;有点加载快&#xff0c;有点却是卡机式&#xff0c;甚至刷新导致白屏情况。于是&#xff0c;我找开发和性能优化的方法&#xff0c;找到下面几种。 本文将深入探讨 预获取&#xff08;Prefetch&#xff09;、动态导入&#xff08;Dynamic Import&…...

OpenCV相机标定与3D重建(66)对立体匹配生成的视差图(disparity map)进行验证的函数validateDisparity()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 使用左右检查来验证视差。矩阵 “cost” 应该由立体对应算法计算。 cv::validateDisparity 函数是 OpenCV 库中用于对立体匹配生成的视差图&…...

git reset (取消暂存,保留工作区修改)

出现这种情况的背景&#xff1a;我不小心把node_modules文件添加到暂存区了&#xff0c;由于文件过大&#xff0c;导致不能提交&#xff0c;所以我想恢复之前的状态&#xff0c;但又不想把修改的代码恢复为之前的状态&#xff0c;所以使用这个命令可以只恢复暂存区的状态&#…...

【论文+源码】diffuseq使用扩散模型和diffuseq-v2的序列文本生成序列,并且桥接离散和连续的文本空间,用于加速SEQ2SEQ扩散模型。

这篇论文介绍了一种名为DIFFUSEQ的新型扩散模型&#xff0c;专门针对序列到序列&#xff08;SEQ2SEQ&#xff09;文本生成任务进行设计。尽管扩散模型在视觉和音频等连续信号领域取得了成功&#xff0c;但在自然语言处理特别是条件生成方面的适应仍然未被广泛探索。通过广泛的评…...

考研机试题:打印日期

描述 给出年分m和一年中的第n天&#xff0c;算出第n天是几月几号。 输入描述: 输入包括两个整数y(1<y<3000)&#xff0c;n(1<n<366)。 输出描述: 可能有多组测试数据&#xff0c;对于每组数据&#xff0c; 按 yyyy-mm-dd的格式将输入中对应的日期打印出来。 …...

Ubuntu 20.04 x64下 编译安装ffmpeg

试验的ffmpeg版本 4.1.3 本文使用的config命令 ./configure --prefixhost --enable-shared --disable-static --disable-doc --enable-postproc --enable-gpl --enable-swscale --enable-nonfree --enable-libfdk-aac --enable-decoderh264 --enable-libx265 --enable-libx…...

springboot使用ssl连接elasticsearch

使用es时ssl证书报错 unable to find valid certification path to requested target 1.依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-elasticsearch</artifactId></dependency>2…...

虚拟头节点和双指针解决链表问题(合并,与分解操作,力扣题目为例)

Problem: 21. 合并两个有序链表 Problem: 86. 分隔链表 文章目录 总览说明题目描述思路复杂度Code总结分析 总览说明 在解决链表相关的算法题目时较多使用到的技巧就是虚拟头节点、双指针&#xff0c;而题目往往都会涉及到对链表的分解、合并操作&#xff0c;本文选择两个题目将…...

JavaScript系列(38)-- WebRTC技术详解

JavaScript WebRTC技术详解 &#x1f3a5; 今天&#xff0c;让我们深入了解WebRTC&#xff08;Web Real-Time Communication&#xff09;技术&#xff0c;这是一种支持网页浏览器进行实时语音对话或视频对话的技术。 WebRTC基础概念 &#x1f31f; &#x1f4a1; 小知识&…...

分布式理解

分布式 如何理解分布式 狭义的分布是指&#xff0c;指多台PC在地理位置上分布在不同的地方。 分布式系统 分布式系**统&#xff1a;**多个能独立运行的计算机&#xff08;称为结点&#xff09;组成。各个结点利用计算机网络进行信息传递&#xff0c;从而实现共同的“目标或者任…...

JVM学习指南(48)-JVM即时编译

文章目录 即时编译(Just-In-Time Compilation, JIT)概述为什么JVM需要即时编译?即时编译与传统的静态编译的区别JVM中的即时编译器HotSpot VM中的C1和C2编译器编译器的作用和位置即时编译的工作流程代码的加载和解释执行热点代码检测编译优化编译优化技术公共子表达式消除循…...

python http调用视觉模型moondream

目录 一、什么是moondream 二、资源地址 三、封装了http进行接口请求 四、代码解析 解释 可能的改进 一、什么是moondream Moondream 是一个针对视觉生成任务的深度学习模型,专注于图像理解和生成,包括图像标注(captioning)、问题回答(Visual Question Answering,…...

【竞技宝】DOTA2:NAVI junior被ESL取消参赛资格

北京时间1月24日,DOTA2目前有多个赛事的预选赛正在如火如荼的进行之中,其中ESLOne罗利站的预选赛已经结束,参赛正赛的队伍也已经全部产生。除了因EPT积分而拿到直邀资格的PARI、BB、falcons、liquid之外,tundra、NAVI junior、spirit、nigma、XG、talon、SR、HEROIC也通过各赛区…...

Java 在包管理与模块化中的优势:与其他开发语言的比较

在开发复杂的、规模庞大的软件系统时&#xff0c;包管理和模块化设计起着至关重要的作用。它们不仅决定了代码的组织和可维护性&#xff0c;还直接影响到团队协作效率、扩展性和性能。在众多编程语言中&#xff0c;Java 凭借其成熟的生态系统、强类型系统和标准化的包管理机制&…...