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

邵阳网站开发/策划是做什么的

邵阳网站开发,策划是做什么的,做打折网站如何,wordpress 作品集网站基于Intel RealSense D435相机和MediaPipe的手部姿态检测,进一步简单实现手部姿态与机器人末端的重定向,获取手部的6D坐标(包括位置和姿态)。 假设已经按照【基于 RealSenseD435i相机实现手部姿态检测】配置好所需的库和环境&…

基于Intel RealSense D435相机和MediaPipe的手部姿态检测,进一步简单实现手部姿态与机器人末端的重定向,获取手部的6D坐标(包括位置和姿态)。
假设已经按照【基于 RealSenseD435i相机实现手部姿态检测】配置好所需的库和环境,并且有一个可以控制的机器人接口。

一、手部姿态重定向介绍

手部姿态重定向通常涉及将实时手部关键点映射到虚拟环境或另一个坐标系中(通常需要映射到机器人坐标系中)。可以使用以下步骤实现基本的手部姿态重定向:

  1. 获取关键点坐标:使用手部追踪库(如 MediaPipe)获取手部关键点的坐标。
    具体包括数据获取和手部特征识别。
    首先选择合适的相机,如RGB相机、深度相机(如Kinect或RealSense),或高帧率摄像头获取实时图像或深度数据;
    然后使用机器学习或深度学习算法(如YOLO、SSD等)检测图像中的手部,也可以使用现成的手部检测模型,例如MediaPipe Hands,来实现实时手部跟踪;
    最后提取手部的关键点信息,例如手指关节、掌心等。

  2. 定义目标坐标系:确定将手部姿态映射到哪个坐标系中,比如虚拟现实环境或者机器人坐标系。

  3. 姿态重定向:根据目标坐标系的需求,进行平移、旋转或缩放等变换。
    首先将2D图像坐标转换为3D空间坐标,通常需要相机内参(焦距、主点位置等),根据关键点位置计算手部的姿态(位置、方向、旋转);
    然后可以使用旋转矩阵、四元数等方式表示手部的姿态;最后将手部的当前姿态转换到机器人的目标姿态。

  4. 输出重定向后的姿态:将重定向后的坐标记录用于后续处理。

二、简单实现手部姿态与机器人末端的重定向

MediaPipe检测器可以准确定位腕部框架中21个手指关节坐标的3D关键点和图像上的2D关键点。

代码示例

import cv2
import numpy as np
import pyrealsense2 as rs
import mediapipe as mp
import time# 初始化 RealSense 管道
pipeline = rs.pipeline()
config = rs.config()
config.enable_stream(rs.stream.color, 640, 480, rs.format.bgr8, 30)
config.enable_stream(rs.stream.depth, 640, 480, rs.format.z16, 30)
pipeline.start(config)# 初始化 MediaPipe 手部模块
mp_hands = mp.solutions.hands
hands = mp_hands.Hands(max_num_hands=2, min_detection_confidence=0.7)
mp_draw = mp.solutions.drawing_utils# 机器人控制函数(示例),具体需要根据需要通过逆解解算
def move_robot_to(position):# 在这里添加机器人控制代码print(f"移动机器人末端到位置: {position}")try:while True:# 获取图像帧frames = pipeline.wait_for_frames()color_frame = frames.get_color_frame()if not color_frame:continue# 转换为 numpy 数组color_image = np.asanyarray(color_frame.get_data())# 将图像转换为 RGB 格式rgb_image = cv2.cvtColor(color_image, cv2.COLOR_BGR2RGB)rgb_image.flags.writeable = False# 检测手部results = hands.process(rgb_image)# 将图像转换回 BGR 格式rgb_image.flags.writeable = Trueannotated_image = cv2.cvtColor(rgb_image, cv2.COLOR_RGB2BGR)# 如果检测到手部if results.multi_hand_landmarks:for hand_landmarks in results.multi_hand_landmarks:# 绘制手部标记mp_draw.draw_landmarks(annotated_image, hand_landmarks, mp_hands.HAND_CONNECTIONS)# 获取手腕的位置(关节0)wrist = hand_landmarks.landmark[mp_hands.HandLandmark.WRIST]h, w, c = annotated_image.shapewrist_x, wrist_y = int(wrist.x * w), int(wrist.y * h)# 将手腕位置转换为机器人坐标,需要进行不同坐标系的位姿变换robot_position = (wrist_x, wrist_y)move_robot_to(robot_position)  # 移动机器人末端# 显示结果cv2.imshow('Hand Detection', annotated_image)if cv2.waitKey(1) & 0xFF == ord('q'):break
finally:# 释放资源pipeline.stop()cv2.destroyAllWindows()

代码说明

  1. 初始化 RealSense 管道:设置相机流,并启动管道。
  2. 初始化 MediaPipe:配置手部检测模块。
  3. 实时捕获与处理:在循环中捕获视频帧,并检测手部姿态。
  4. 机器人控制:通过 move_robot_to 函数模拟移动机器人末端到手腕位置,需要根据自己的机器人接口实现具体的控制代码。
  5. 显示结果:在窗口中显示手部检测的图像,按 q 键退出。

运行代码

  1. 将代码保存为 hand_pose_robot.py

  2. 连接 Intel RealSense D435 相机。

  3. 在终端中运行代码:

    python hand_pose_robot.py
    

运行结果

在这里插入图片描述将 Intel RealSense D435 相机与 MediaPipe 的手部姿态检测整合在一起,可以实现手部姿态的实时检测,并将手腕的关键点转换为相机坐标系下的空间坐标。接下来,我们将编写一个完整的示例代码,进行手部关键点坐标到机器人坐标系的转换。

三、简单实现手腕与机器人末端的坐标转换

代码示例

以下是将 Intel RealSense D435 相机与 MediaPipe 手部姿态检测结合的完整代码示例:

import cv2
import mediapipe as mp
import numpy as np
import pyrealsense2 as rs# 初始化MediaPipe手部模型
mp_hands = mp.solutions.hands
hands = mp_hands.Hands(static_image_mode=False, max_num_hands=1, min_detection_confidence=0.7)
mp_drawing = mp.solutions.drawing_utils# 设置RealSense相机参数
pipeline = rs.pipeline()
config = rs.config()
config.enable_stream(rs.stream.depth, 640, 480, rs.format.z16, 30)
config.enable_stream(rs.stream.color, 640, 480, rs.format.bgr8, 30)# 启动相机流
pipeline.start(config)# 相机到机器人坐标系的转换矩阵(示例,需要根据实际情况调整)
camera_to_robot_transform = np.array([[1, 0, 0, 0],  # x轴[0, 1, 0, 0],  # y轴[0, 0, 1, 0],  # z轴[0, 0, 0, 1]   # 平移
])def wrist_to_camera_coordinates(wrist_landmark, depth_frame):# 获取深度信息depth_value = depth_frame.get_distance(int(wrist_landmark.x * 640), int(wrist_landmark.y * 480))if depth_value == 0:return None  # 如果深度值为0,返回None# 计算空间坐标x = (wrist_landmark.x * 640 - 320) * depth_value / 525.0  # 525.0是相机焦距(可根据相机参数调整)y = (wrist_landmark.y * 480 - 240) * depth_value / 525.0z = depth_valuereturn np.array([x, y, z])def main():while True:# 获取相机帧frames = pipeline.wait_for_frames()color_frame = frames.get_color_frame()depth_frame = frames.get_depth_frame()if not color_frame or not depth_frame:continue# 转换为numpy数组frame = np.asanyarray(color_frame.get_data())# RGB转换frame_rgb = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)results = hands.process(frame_rgb)if results.multi_hand_landmarks:for hand_landmarks in results.multi_hand_landmarks:# 提取手腕关键点wrist_landmark = hand_landmarks.landmark[mp_hands.HandLandmark.WRIST]# 转换为相机坐标系下的空间坐标wrist_coordinates = wrist_to_camera_coordinates(wrist_landmark, depth_frame)if wrist_coordinates is not None:# 映射到机器人坐标系robot_coordinates = camera_to_robot_transform @ np.append(wrist_coordinates, 1)  # 同质坐标转换# 打印机器人坐标print(f"Wrist Coordinates (Camera): {wrist_coordinates}")print(f"Wrist Coordinates (Robot): {robot_coordinates[:3]}")  # 只取x, y, z# 可视化手部关键点mp_drawing.draw_landmarks(frame, hand_landmarks, mp_hands.HAND_CONNECTIONS)cv2.imshow('Hand Tracking', frame)if cv2.waitKey(1) & 0xFF == 27:  # 按Esc退出break# 停止相机流pipeline.stop()cv2.destroyAllWindows()if __name__ == "__main__":main()

代码说明

  • RealSense 相机设置:使用 pyrealsense2 库来设置和启动 RealSense D435 相机的流。代码配置了颜色流和深度流。

  • MediaPipe 手部姿态检测:使用 MediaPipe 检测手部关键点,特别是手腕的位置。

  • 手腕坐标转换wrist_to_camera_coordinates 函数根据手腕的关键点和深度图计算相机坐标系下的空间坐标。

  • 坐标转换:使用转换矩阵将相机坐标系下的手腕坐标转换到机器人坐标系。需要根据实际机器人和相机的位置关系调整 camera_to_robot_transform 矩阵。

  • 可视化和输出:代码在每帧中显示检测到的手部关键点,并输出手腕在相机坐标系和机器人坐标系下的坐标。

运行代码

  1. 将代码保存为 hand_pose_robot.py
  2. 连接 Intel RealSense D435 相机。
  3. 在终端中运行代码:
python hand_pose_robot.py

运行结果

Wrist Coordinates (Camera): [0.04378617 0.0835716  0.58400005]
Wrist Coordinates (Robot): [ 0.04378617 -0.0835716   0.58400005]

四、简单实现手部的6D坐标获取

要获取手部的6D坐标(包括位置和姿态),可以通过以下步骤实现:

  1. 获取3D坐标:使用 MediaPipe 提供的手部关键点数据(例如,手腕、手指尖等),获取它们的3D坐标(x, y, z)。

  2. 计算姿态信息:姿态信息通常可以通过手部关键点的位置和方向来推断。例如,可以使用手指的相对位置和角度来表示手的朝向。你可以选择特定的关键点(如手腕和食指尖)来定义手的方向。

  3. 构造6D坐标:组合位置和姿态信息,构造6D坐标。

代码示例

以下是如何在代码中实现这一点的示例:

import cv2
import numpy as np
import pyrealsense2 as rs
import mediapipe as mp
import math# 其他部分保持不变...def calculate_orientation(hand_landmarks):# 假设使用手腕和食指尖来计算姿态wrist = hand_landmarks.landmark[mp_hands.HandLandmark.WRIST]index_finger_tip = hand_landmarks.landmark[mp_hands.HandLandmark.INDEX_FINGER_TIP]# 获取3D坐标wrist_pos = np.array([wrist.x, wrist.y, wrist.z])finger_tip_pos = np.array([index_finger_tip.x, index_finger_tip.y, index_finger_tip.z])# 计算手的方向向量direction_vector = finger_tip_pos - wrist_posdirection_vector /= np.linalg.norm(direction_vector)  # 单位化# 将方向向量转换为欧拉角(假设手向上)yaw = math.atan2(direction_vector[1], direction_vector[0])pitch = math.asin(direction_vector[2])roll = 0  # 如果不考虑手的旋转,roll可以设为0return wrist_pos, (yaw, pitch, roll)try:while True:frames = pipeline.wait_for_frames()color_frame = frames.get_color_frame()if not color_frame:continuecolor_image = np.asanyarray(color_frame.get_data())rgb_image = cv2.cvtColor(color_image, cv2.COLOR_BGR2RGB)rgb_image.flags.writeable = Falseresults = hands.process(rgb_image)rgb_image.flags.writeable = Trueannotated_image = cv2.cvtColor(rgb_image, cv2.COLOR_RGB2BGR)if results.multi_hand_landmarks:for hand_landmarks in results.multi_hand_landmarks:mp_draw.draw_landmarks(annotated_image, hand_landmarks, mp_hands.HAND_CONNECTIONS)wrist_pos, orientation = calculate_orientation(hand_landmarks)robot_position = wrist_pos  # 机器人位置为手腕坐标move_robot_to(robot_position)  # 移动机器人末端print(f"手腕位置: {wrist_pos}, 姿态: {orientation}")cv2.imshow('Hand Detection', annotated_image)if cv2.waitKey(1) & 0xFF == ord('q'):break
finally:pipeline.stop()cv2.destroyAllWindows()

代码说明

  1. calculate_orientation 函数:计算手腕的3D位置和手的朝向(以欧拉角表示)。
  2. 姿态计算:根据手腕和食指尖的位置计算手的方向,并归一化为单位向量,从而得到姿态。
  3. 输出结果:打印手腕的位置和姿态。

运行代码

  1. 将代码保存为 hand_pose_robot_6D.py
  2. 连接 Intel RealSense D435 相机。
  3. 在终端中运行代码:
python hand_pose_robot_6D.py

运行结果

手腕位置: [ 6.16283059e-01  5.05638361e-01 -1.23956696e-07], 姿态: (-1.6486818875015121, -0.3188391517848179, 0)
手腕位置: [ 6.15322232e-01  5.09867549e-01 -1.33983647e-07], 姿态: (-1.6649436814315695, -0.3417587888604621, 0)
手腕位置: [ 6.18688941e-01  5.15018821e-01 -1.20955633e-07], 姿态: (-1.6953785334171043, -0.2905682467378848, 0)
手腕位置: [ 6.19475007e-01  5.10892391e-01 -1.25988706e-07], 姿态: (-1.7442050004258685, -0.17409076245894894, 0)
手腕位置: [ 6.22752011e-01  5.18672347e-01 -9.87428663e-08], 姿态: (-1.8722014318776006, -0.183676503807803, 0)
手腕位置: [6.27165079e-01 5.15416026e-01 8.79372877e-08], 姿态: (-2.0528003434969873, -0.07735958610038009, 0)
手腕位置: [6.26826108e-01 5.08712649e-01 1.98455922e-07], 姿态: (-2.020922761062857, -0.06753396048955623, 0)
手腕位置: [6.31548941e-01 5.09610891e-01 2.30047050e-07], 姿态: (-2.0704836718570623, 0.019604326160985164, 0)
手腕位置: [6.32204950e-01 5.19681990e-01 2.23285795e-07], 姿态: (-2.065844798885916, 0.12585902334658688, 0)
手腕位置: [6.32742882e-01 5.19853532e-01 3.06575970e-07], 姿态: (-2.056895662858401, 0.11631550222837758, 0)

通过这个方法,可以获得6D坐标(位置和姿态),适用于进一步的机器人控制和交互。确保根据具体应用需要对姿态计算进行调整。

五、总结

确保环境中已经安装了相关库,并且相机正常工作。运行后,窗口中将显示实时的手部检测结果,同时机器人末端会根据手腕位置进行重定向。可以实时监测手部动作并将其坐标转换为机器人坐标系,进而实现对机器人的控制。

在实际应用中,可能需要:

  • 根据 RealSense 相机的参数调整坐标转换公式。
  • 调整机器人坐标系的转换矩阵,以匹配相机与机器人之间的实际位置关系。
  • 增强代码的鲁棒性,处理深度数据的缺失情况。

相关文章:

基于RealSense D435相机实现手部姿态重定向

基于Intel RealSense D435相机和MediaPipe的手部姿态检测,进一步简单实现手部姿态与机器人末端的重定向,获取手部的6D坐标(包括位置和姿态)。 假设已经按照【基于 RealSenseD435i相机实现手部姿态检测】配置好所需的库和环境&…...

js中防抖 debounce 节流 throttle 原理 从0手动实现

1 防抖 高频触发事件时,执行损耗高的操作,连续触发过程中,只执行最后一次。 高频事件:input scroll resize等。损耗高:网络请求、dom操作。 实现防抖步骤:1.在回调函数中判断timer是否存在,存在…...

AIGC: 10 AI转文服务器的搭建过程记录

上图是台风席卷城市,现在企业的服务基本都是混合部署,云计算厂商的机房往往可以提供比较好的保护,一般在地下,扛多少级地震,扛多少级台风,而自建机房,往往写字楼经常停电,网络运营上…...

性能测试1初步使用Jmeter

当你看到这边文章的时候,详细你已经知道啥是性能测试,以及也听说过Jmeter了,所以不过多介绍,这里,只是帮助你快速的使用Jmeter来测试接口。 1获取安装包 官网下载地址:https://jmeter.apache.org/downloa…...

OpenGL ES 绘制一个三角形(2)

OpenGL ES 绘制一个三角形(2) 简述 本节我们基于Android系统,使用OpenGL ES来实现绘制一个三角形。在OpenGL ES里,三角形是一个基础图形,其他的图形都可以使用三角形拼接而成,所以我们就的案例就基于这个开始。 在Android系统中…...

QT----Creater14.0,qt5.15无法启动调试,Launching GDB Debugger报红

问题描述 使用QT Creater 14.0 和qt5.15,无法启动调试也没有报错,加载debugger报红 相关文件都有 解决方案 尝试重装QT,更换版本5.15.2,下载到文件夹,shift鼠标右键打开powershell输入 .\qt-online-installer-windows-x64-4.8.0.exe --mirror http://mirrors.ustc.edu.cn…...

初试React前端框架

文章目录 一、React概述二、React核心特性1、组件化设计2、虚拟DOM3、生态系统 三、实例操作1、准备工作2、创建项目结构3、启动项目4、编写React组件5、添加React样式6、运行项目,查看效果 四、实战小结 一、React概述 大家好,今天我们将一起探索React…...

华为OD机试真题---手机App防沉迷系统

题目概述 智能手机在方便我们生活的同时,也侵占了大量时间。手机App防沉迷系统旨在帮助用户合理规划手机App使用时间,确保在正确的时间做正确的事。系统的主要功能包括: 在一天24小时内,可注册每个App的允许使用时段。一个时段只…...

物流货运托运发货单二联三联打印软件定制 佳易王物流单管理系统操作教程

一、前言 物流货运托运发货单二联三联打印软件定制 佳易王物流单管理系统操作教程 1、软件为绿色免安装版,解压即可使用,已经内置数据库,不需再安装。 2、软件下载可以到本文章最后点击官网卡片下。 二、软件程序教程 1、如图,…...

代码随想录算法训练营| 找树左下角的值 、 路径总和 、 从中序与后序遍历序列构造二叉树

找树左下角的值 题目 参考文章 思路:这里寻找最左下角的值,其实用前中后序都是可以的,只要保证第一遍历的是左边开始就可以。设置Deep记录遍历的最大深度,deep记录当前深度。当遇到叶子节点时而且当前深度比最大深度还大则更换最…...

【开源免费】基于SpringBoot+Vue.JS服装销售平台(JAVA毕业设计)

博主说明:本文项目编号 T 054 ,文末自助获取源码 \color{red}{T054,文末自助获取源码} T054,文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析…...

人工智能与自然语言处理发展史

前言 在科技的浪潮中,人工智能 (AI) 作为一股不可阻挡的力量,持续推动着社会与科技的进步。本博客旨在深入剖析人工智能及其核心领域——神经网络、自然语言处理、统计语言模型、以及大规模语言模型——的演进历程,以专业的视角展现这一领域…...

0基础跟德姆(dom)一起学AI 机器学习01-机器学习概述

【知道】人工智能 - Artificial Intelligence 人工智能 - AI is the field that studies the synthesis and analysis of computational agents that act intelligently - AI is to use computers to analog and instead of human brain - 释义 - 仿智; 像人…...

yakit使用教程(一,下载并进行基础配置)

一,yakit简介 YAKIT(Yet Another Knife for IT Security)是一款网络安全单兵工具,专为个人渗透测试员和安全研究人员设计。它整合了一系列实用的安全工具,例如密码破解工具、网络扫描器、漏洞利用工具等,帮…...

计算机毕业设计电影票购买网站 在线选票选座 场次订票统计 新闻留言搜索/springboot/javaWEB/J2EE/MYSQL数据库/vue前后分离小程序

系统功能 ‌在线选票选座‌:用户可浏览电影场次,选择座位并生成订单。‌场次订票统计‌:系统实时统计各场次订票情况,便于影院管理。‌新闻发布与留言‌:发布最新电影资讯,用户可留言互动。‌搜索功能‌&a…...

DES、3DES 算法及其应用与安全性分析

一、引言 1.1 研究背景 在当今数字化时代,信息安全至关重要。对称加密算法作为信息安全领域的重要组成部分,发挥着关键作用。DES(Data Encryption Standard)作为早期的对称加密算法,由美国国家标准局于 1977 年采纳为数据加密标准。随着计算机运算能力的不断增强,DES 算…...

TypeScript介绍和安装

TypeScript介绍 TypeScript是由微软开发的一种编程语言,它在JavaScript的基础上增加了静态类型检查。静态类型允许开发者在编写代码时指定变量和函数的类型,这样可以在编译时捕获潜在的错误,而不是等到运行时才发现问题。比如,你…...

NetworkPolicy访问控制

NetworkPolicy是Kubernetes中一种用于控制Pod之间以及Pod与外部网络之间流量的资源对象。它可以帮助你在 IP 地址或端口层面(OSI 第 3 层或第 4 层)控制网络流量。NetworkPolicy 资源使用标签选择 Pod,并定义选定 Pod 所允许的通信规则。它可…...

C++面向对象基础

目录 一.作用域限定符 1.名字空间 2.类内声明,类外定义 二.this指针 1 概念 2.功能 2.1 类内调用成员 2.2 区分重名的成员变量和局部变量 2.3链式调用 三.stastic关键字 1.静态局部变量 2 静态成员变量 3 静态成员函数 4 单例设计模式(了解…...

遥感图像变换检测实践上手(TensorRT+UNet)

目录 简介 分析PyTorch示例 onnx模型转engine 编写TensorRT推理代码 main.cpp测试代码 小结 简介 这里通过TensorRTUNet,在Linux下实现对遥感图像的变化检测,示例如下: 可以先拉去代码:RemoteChangeDetection 分析PyTorch示…...

Transformers 引擎,vLLM 引擎,Llama.cpp 引擎,SGLang 引擎,MLX 引擎

1. Transformers 引擎 开发者:Hugging Face主要功能:Transformers 库提供了对多种预训练语言模型的支持,包括 BERT、GPT、T5 等。用户可以轻松加载模型进行微调或推理。特性: 多任务支持:支持文本生成、文本分类、问答…...

牛顿迭代法求解x 的平方根

牛顿迭代法是一种可以用来快速求解函数零点的方法。 为了叙述方便,我们用 C C C表示待求出平方根的那个整数。显然, C C C的平方根就是函数 f ( x ) x c − C f(x)x^c-C f(x)xc−C 的零点。 牛顿迭代法的本质是借助泰勒级数,从初始值开始快…...

端口隔离配置的实验

端口隔离配置是一种网络安全技术,用于在网络设备中实现不同端口之间的流量隔离和控制。以下是对端口隔离配置的详细解析: 基本概念:端口隔离技术允许用户将不同的端口加入到隔离组中,从而实现这些端口之间的二层数据隔离。这种技…...

洛谷 P10456 The Pilots Brothers‘ refrigerator

[Problem Discription] \color{blue}{\texttt{[Problem Discription]}} [Problem Discription] 给定一个 4 4 4 \times 4 44 的网格,每个网格有 0 , 1 0,1 0,1 两种状态。求最少可以通过多少次操作使得整个网格全部变成 1 1 1。 每次操作你需要选定一个格点 …...

windows+vscode+arm-gcc+openocd+daplink开发arm单片机程序

windowsvscodearm-gccopenocddaplink开发arm单片机程序,脱离keil。目前发现的最佳解决方案是,使用vscodeembedded ide插件。 Embedded IDE官方教程文档...

Mysql梳理10——使用SQL99实现7中JOIN操作

10 使用SQL99实现7中JOIN操作 10.1 使用SQL99实现7中JOIN操作 本案例的数据库文件分享: 通过百度网盘分享的文件:atguigudb.sql 链接:https://pan.baidu.com/s/1iEAJIl0ne3Y07kHd8diMag?pwd2233 提取码:2233 # 正中图 SEL…...

24.9.27学习笔记

Xavier初始化,也称为Glorot初始化,是一种在训练深度神经网络时用于初始化网络权重的策略。它的核心思想是在网络的每一层保持前向传播和反向传播时的激活值和梯度的方差尽可能一致,以避免梯度消失或梯度爆炸的问题。这种方法特别适用于激活函…...

C++第3课——保留小数点、比较运算符、逻辑运算符、布尔类型以及if-else分支语句(含视频讲解)

文章目录 1、课程笔记2、课程视频 1、课程笔记 #include<iostream>//头文件 input output #include<cmath> //sqrt()所需的头文件 #include<iomanip>//setprecision(1)保留小数点位数所需的头文件 using namespace std; int main(){/*复习上节课内容1、…...

韩媒专访CertiK首席商务官:持续关注韩国市场,致力于解决Web3安全及合规问题

作为Web3.0头部安全公司&#xff0c;CertiK在KBW期间联合CertiK Ventures举办的活动引起了业界的广泛关注。CertiK一直以来与韩国地方政府保持着紧密合作关系&#xff0c;在合规领域提供强有力的支持。而近期重磅升级的CertiK Ventures可以更好地支持韩国本地的区块链项目。上述…...

计算机毕业设计之:宠物服务APP的设计与实现(源码+文档+讲解)

博主介绍&#xff1a; ✌我是阿龙&#xff0c;一名专注于Java技术领域的程序员&#xff0c;全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师&#xff0c;我在计算机毕业设计开发方面积累了丰富的经验。同时&#xff0c;我也是掘金、华为云、阿里云、InfoQ等平台…...