中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

醫(yī)療網(wǎng)站優(yōu)化最好用的免費建站

醫(yī)療網(wǎng)站優(yōu)化,最好用的免費建站,網(wǎng)站建設(shè)的可研設(shè)計報告,企業(yè)網(wǎng)站后臺管理系統(tǒng)第一步: 首先在工作空間/src下創(chuàng)建數(shù)據(jù)結(jié)構(gòu)目錄service_interfaces ros2 pkg create service_interfaces --build-type ament_cmake 然后再創(chuàng)建一個srv目錄 在里面創(chuàng)建FaceDetect.srv(注意,首字母要大寫) sensor_msgs/Image …

第一步:

首先在工作空間/src下創(chuàng)建數(shù)據(jù)結(jié)構(gòu)目錄service_interfaces

ros2 pkg create service_interfaces --build-type ament_cmake

然后再創(chuàng)建一個srv目錄

在里面創(chuàng)建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.srv"DEPENDENCIES 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 version="1.0"?>
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
<package format="3"><name>service_interfaces</name><version>0.0.0</version><description>TODO: Package description</description><maintainer email="root@todo.todo">root</maintainer><license>TODO: License declaration</license><buildtool_depend>ament_cmake</buildtool_depend><depend>sensor_msgs</depend><build_depend>rosidl_default_generators</build_depend><exec_depend>rosidl_default_runtime</exec_depend><member_of_group>rosidl_interface_packages</member_of_group><test_depend>ament_lint_auto</test_depend><test_depend>ament_lint_common</test_depend><export><build_type>ament_cmake</build_type></export>
</package>

第二步:

要準備好人臉識別的庫,不懂的可以看我的另一篇文章《Ubuntu如何使用pip》

要安裝好face_recognition的庫

pip install face_recognition

安裝成功后即可

第三步

在工作空間/src下創(chuàng)建功能包


ros2 pkg create hj_service --build-type ament_cmake --dependencies rclcpp service_interfaces

接著創(chuàng)建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_sec=1.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圖像轉(zhuǎn)換為ROS圖像消息msg = self.bridge.cv2_to_imgmsg(self.cv_image, encoding="bgr8")# 構(gòu)建服務(wù)請求request = FaceDetect.Request()request.photo = msg# 調(diào)用服務(wù)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()  # 關(guān)閉所有窗口breakdef main(args=None):rclpy.init(args=args)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, model="hog")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(args=None):rclpy.init(args=args)node = FaceDetectServerNode('face_detect_server_node')rclpy.spin(node)node.destroy_node()rclpy.shutdown()if __name__ == '__main__':main()

package.xml

<?xml version="1.0"?>
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
<package format="3"><name>hj_service</name><version>0.0.0</version><description>TODO: Package description</description><maintainer email="root@todo.todo">root</maintainer><license>TODO: License declaration</license><depend>rclpy</depend><depend>service_interfaces</depend><depend>sensor_msgs</depend><test_depend>ament_copyright</test_depend><test_depend>ament_flake8</test_depend><test_depend>ament_pep257</test_depend><test_depend>python3-pytest</test_depend><export><build_type>ament_python</build_type></export>
</package>

setup.py

from setuptools import find_packages, setuppackage_name = 'hj_service'setup(name=package_name,version='0.0.0',packages=find_packages(exclude=['test']),data_files=[('share/ament_index/resource_index/packages',['resource/' + package_name]),('share/' + package_name, ['package.xml']),],install_requires=['setuptools'],zip_safe=True,maintainer='root',maintainer_email='root@todo.todo',description='TODO: Package description',license='TODO: 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.risenshineclean.com/news/8676.html

相關(guān)文章:

  • 新手學(xué)做網(wǎng)站72小時精選廈門網(wǎng)絡(luò)營銷推廣
  • 昆明市建設(shè)局網(wǎng)站百度的網(wǎng)站
  • google站長工具刷百度關(guān)鍵詞排名
  • 專業(yè)網(wǎng)站開發(fā)報價seo綜合查詢國產(chǎn)
  • 網(wǎng)站建設(shè)氺首選金手指142022最新國內(nèi)新聞50條簡短
  • wordpress做外貿(mào)網(wǎng)站站長工具之家seo查詢
  • 齊齊哈爾做網(wǎng)站搜狗seo
  • 鄭州網(wǎng)站建設(shè)老牌公司網(wǎng)絡(luò)營銷步驟
  • 找個做微商授權(quán)網(wǎng)站黑科技引流工具
  • 山西路橋建設(shè)集團有限公司網(wǎng)站驚艷的網(wǎng)站設(shè)計
  • 做網(wǎng)站是怎么回事國內(nèi)免費推廣產(chǎn)品的網(wǎng)站
  • 泉州企業(yè)建站系統(tǒng)南寧排名seo公司
  • 求邯鄲網(wǎng)站制作搜索引擎排名優(yōu)化方案
  • pc網(wǎng)站原型設(shè)計工具河南平價的seo整站優(yōu)化定制
  • 別墅室內(nèi)設(shè)計網(wǎng)站寧波關(guān)鍵詞優(yōu)化企業(yè)網(wǎng)站建設(shè)
  • 網(wǎng)站開發(fā)中網(wǎng)頁之間的鏈接形式有模板建站流程
  • 哪個協(xié)會要做網(wǎng)站建設(shè)啊優(yōu)化網(wǎng)站快速排名軟件
  • 鄭州市哪里有網(wǎng)站建設(shè)河南網(wǎng)站排名優(yōu)化
  • 手表網(wǎng)站起名搜索引擎優(yōu)化指南
  • 在中國做外國網(wǎng)站怎么收錢網(wǎng)站查詢
  • pc網(wǎng)站怎么做旅游最新資訊
  • 網(wǎng)頁版游戲大全在線玩網(wǎng)絡(luò)優(yōu)化有前途嗎
  • 如何苗木網(wǎng)站建設(shè)全網(wǎng)推廣怎么做
  • 打開百度一下簡述搜索引擎優(yōu)化的方法
  • 嘉興秀洲區(qū)建設(shè)局網(wǎng)站推廣方式和推廣渠道
  • 深圳網(wǎng)站建設(shè) 工作室如何做宣傳推廣效果最好
  • 做推廣哪個網(wǎng)站最熱門百度推廣電話客服
  • 網(wǎng)站建設(shè) 化工大連seo網(wǎng)站推廣
  • 移動端電商網(wǎng)站百度網(wǎng)盤客服24小時電話人工服務(wù)
  • 給境外合法網(wǎng)站做數(shù)據(jù)優(yōu)化問題