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

西安网站工作室做网站台式还是笔记本

西安网站工作室,做网站台式还是笔记本,太原做网站哪家公司好,哈巴河网站制作第一步#xff1a; 首先在工作空间/src下创建数据结构目录service_interfaces ros2 pkg create service_interfaces --build-type ament_cmake 然后再创建一个srv目录 在里面创建FaceDetect.srv#xff08;注意#xff0c;首字母要大写#xff09; sensor_msgs/Image …第一步 首先在工作空间/src下创建数据结构目录service_interfaces ros2 pkg create service_interfaces --build-type ament_cmake 然后再创建一个srv目录 在里面创建FaceDetect.srv注意首字母要大写 sensor_msgs/Image photo --- uint16 number float32 use_timeint32[] top int32[] right int32[] bottom int32[] left CmakeList.txt cmake_minimum_required(VERSION 3.8) project(service_interfaces)if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES Clang)add_compile_options(-Wall -Wextra -Wpedantic) endif()# find dependencies find_package(ament_cmake REQUIRED) # uncomment the following section in order to fill in # further dependencies manually. # find_package(dependency REQUIRED) # 添加依赖 find_package(sensor_msgs REQUIRED) # 确保这个包在这里被找到 # 声明srv文件所属的工程名字, 文件位置, 依赖DEPENDENCIES find_package(rosidl_default_generators REQUIRED) rosidl_generate_interfaces(${PROJECT_NAME}srv/FaceDetect.srvDEPENDENCIES sensor_msgs )if(BUILD_TESTING)find_package(ament_lint_auto REQUIRED)# the following line skips the linter which checks for copyrights# comment the line when a copyright and license is added to all source filesset(ament_cmake_copyright_FOUND TRUE)# the following line skips cpplint (only works in a git repo)# comment the line when this package is in a git repo and when# a copyright and license is added to all source filesset(ament_cmake_cpplint_FOUND TRUE)ament_lint_auto_find_test_dependencies() endif()ament_package()package.xml 加上依赖 ?xml version1.0? ?xml-model hrefhttp://download.ros.org/schema/package_format3.xsd schematypenshttp://www.w3.org/2001/XMLSchema? package format3nameservice_interfaces/nameversion0.0.0/versiondescriptionTODO: Package description/descriptionmaintainer emailroottodo.todoroot/maintainerlicenseTODO: License declaration/licensebuildtool_dependament_cmake/buildtool_dependdependsensor_msgs/dependbuild_dependrosidl_default_generators/build_dependexec_dependrosidl_default_runtime/exec_dependmember_of_grouprosidl_interface_packages/member_of_grouptest_dependament_lint_auto/test_dependtest_dependament_lint_common/test_dependexportbuild_typeament_cmake/build_type/export /package 第二步 要准备好人脸识别的库不懂的可以看我的另一篇文章《Ubuntu如何使用pip》 要安装好face_recognition的库 pip install face_recognition 安装成功后即可 第三步 在工作空间/src下创建功能包 ros2 pkg create hj_service --build-type ament_cmake --dependencies rclcpp service_interfaces 接着创建face_detect_client.py 在这个代码里面你需要准备好一张里面有人脸的图片 import rclpy from rclpy.node import Node from service_interfaces.srv import FaceDetect from sensor_msgs.msg import Image from cv_bridge import CvBridge, CvBridgeError import cv2 import sysclass FaceDetectClientNode(Node):def __init__(self):super().__init__(face_detect_client_node)self.client self.create_client(FaceDetect, face_detect_service)while not self.client.wait_for_service(timeout_sec1.0):self.get_logger().info(Service not available, waiting again...)self.bridge CvBridge()self.cv_image None # 初始化cv_image为类属性def send_request(self, image_path):try:# 读取图像文件self.cv_image cv2.imread(image_path) # 保存cv_image为类属性if self.cv_image is None:self.get_logger().info(Failed to read image)return# 将OpenCV图像转换为ROS图像消息msg self.bridge.cv2_to_imgmsg(self.cv_image, encodingbgr8)# 构建服务请求request FaceDetect.Request()request.photo msg# 调用服务self.future self.client.call_async(request)except CvBridgeError as e:self.get_logger().info(CvBridge Error: {0}.format(e))def get_response(self):while rclpy.ok():rclpy.spin_once(self)if self.future.done():try:response self.future.result()except Exception as e:self.get_logger().info(Service call failed %r % (e,))else:self.get_logger().info(Service response: use_time: %f, number: %d % (response.use_time, response.number))for i in range(response.number):self.get_logger().info(Face %d: top: %d, right: %d, bottom: %d, left: %d %(i, response.top[i], response.right[i], response.bottom[i], response.left[i]))# 绘制人脸边框for i in range(response.number):top response.top[i]right response.right[i]bottom response.bottom[i]left response.left[i]cv2.rectangle(self.cv_image, (left, top), (right, bottom), (0, 255, 0), 2)# 显示图像cv2.imshow(Detected Faces, self.cv_image)cv2.waitKey(0) # 等待按键cv2.destroyAllWindows() # 关闭所有窗口breakdef main(argsNone):rclpy.init(argsargs)node FaceDetectClientNode()# 替换image.jpg为你的图像文件路径node.send_request(/home/phj/Downloads/test.jpeg)node.get_response()node.destroy_node()rclpy.shutdown()if __name__ __main__:main() face_detect_server.py import rclpy from rclpy.node import Node from service_interfaces.srv import FaceDetect from sensor_msgs.msg import Image from cv_bridge import CvBridge, CvBridgeError import cv2 import face_recognition import timeclass FaceDetectServerNode(Node):def __init__(self, node_name):super().__init__(node_name)self.service self.create_service(FaceDetect, face_detect_service, self.face_detect_callback)self.bridge CvBridge()self.get_logger().info(Service created.)def face_detect_callback(self, request, response):if request.photo.data:try:cv_image self.bridge.imgmsg_to_cv2(request.photo, bgr8)except CvBridgeError as e:self.get_logger().info(CvBridge Error: %s % e)returnelse:self.get_logger().info(No image data received)returnstart time.time()face_locations face_recognition.face_locations(cv_image, modelhog)response.use_time time.time() - startresponse.number len(face_locations)# Initialize lists in the responseresponse.top []response.right []response.bottom []response.left []for (top, right, bottom, left) in face_locations:response.top.append(top)response.right.append(right)response.bottom.append(bottom)response.left.append(left)return responsedef main(argsNone):rclpy.init(argsargs)node FaceDetectServerNode(face_detect_server_node)rclpy.spin(node)node.destroy_node()rclpy.shutdown()if __name__ __main__:main() package.xml ?xml version1.0? ?xml-model hrefhttp://download.ros.org/schema/package_format3.xsd schematypenshttp://www.w3.org/2001/XMLSchema? package format3namehj_service/nameversion0.0.0/versiondescriptionTODO: Package description/descriptionmaintainer emailroottodo.todoroot/maintainerlicenseTODO: License declaration/licensedependrclpy/dependdependservice_interfaces/dependdependsensor_msgs/dependtest_dependament_copyright/test_dependtest_dependament_flake8/test_dependtest_dependament_pep257/test_dependtest_dependpython3-pytest/test_dependexportbuild_typeament_python/build_type/export /packagesetup.py from setuptools import find_packages, setuppackage_name hj_servicesetup(namepackage_name,version0.0.0,packagesfind_packages(exclude[test]),data_files[(share/ament_index/resource_index/packages,[resource/ package_name]),(share/ package_name, [package.xml]),],install_requires[setuptools],zip_safeTrue,maintainerroot,maintainer_emailroottodo.todo,descriptionTODO: Package description,licenseTODO: License declaration,tests_require[pytest],entry_points{console_scripts: [service hj_service.service_member_function:main,client hj_service.client_member_function:main,param_sample hj_service.param:main,face_detect_server_node hj_service.face_detect_server:main,face_detect_client_node hj_service.face_detect_client:main],}, )第四步 打开一个终端 ros2 run hj_service face_detect_server_node打开另一个终端 ros2 run hj_service face_detect_client_node成功
http://www.hkea.cn/news/14391255/

相关文章:

  • 余姚网站制作新浪短网址在线生成
  • 网站显示图片标记个人养老金制度具体内容
  • 邯郸网站制作费用第一环保网站建设项目环评公示
  • 专业的设计网站有哪些内容什么网站有做面条的app
  • wordpress多站点模式新浪网页版登录
  • 如何建一个免费网站网站平台都有哪些
  • 网站建好更新做国外网站调查挣取零花钱
  • 成县建设局网站网络营销的一般流程
  • 怎么用文件传输协议登录网站兰州网络运营公司
  • 哈尔滨专业制作网站论坛搭建一键
  • 那些网站专门做棋牌推广的太原顶呱呱做网站地址电话
  • 大兴网站开发网站建设如何做后端网站管理
  • 镇江网站建设网站制作公司西安通程建设工程 网站
  • 做墙报的网站淘宝销售书网站建设方案
  • 网站建公司生存网络营销推广的成功案例
  • 厦门网站建设案例关键词搜索量查询工具
  • 阅读网站模板遥阳科技网站建设
  • 网络推广网站培训班广州网站建设加盟
  • 视频网站开发前景如何wordpress联系表格
  • 关闭网站需要多久网站静态和动态
  • 小公司如何做网站隔离食品包装设计规范及包装标准
  • 兰州市住房和建设局网站青岛网站设计品牌企业
  • 课程网站建设所用技术合肥小程序开发公司
  • 网站建设工作室怎么开网络营销五个主要手段
  • 网站如何做二级栏目网页版传奇服务端
  • 重庆建设工程招标造价信息网站网站建设项目如何敏捷
  • 建个什么网站好呢互联网整合营销推广
  • 干果坚果网站建设中山网站制作服务
  • 有专业做线切割配件的网站吗在windows在wordpress
  • 汕尾网站建设免费自动交易软件app