实例介绍
openpose-1.4.0 9月份最新版本。
【实例截图】
【核心代码】
openpose-1.4.0
└── openpose-1.4.0
├── 3rdparty
│ ├── osx
│ │ └── install_deps.sh
│ ├── Versions.txt
│ └── windows
│ ├── getCaffe3rdparty.bat
│ ├── getCaffe.bat
│ ├── getFreeglut.bat
│ ├── getOpenCV.bat
│ ├── unzip
│ │ ├── LICENSE.txt
│ │ └── unzip.exe
│ └── wget
│ ├── COPYING
│ ├── Version_wget-1.19.1-win64.txt
│ ├── wget.exe
│ ├── wget.exe.debug
│ ├── wget.html
│ └── wget.ini.sample
├── cmake
│ ├── cmake_uninstall.cmake.in
│ ├── Cuda.cmake
│ ├── Modules
│ │ ├── FindCaffe.cmake
│ │ ├── FindCuDNN.cmake
│ │ ├── FindGFlags.cmake
│ │ ├── FindGlog.cmake
│ │ ├── FindLIBIGL.cmake
│ │ └── FindSpinnaker.cmake
│ ├── OpenPose_CL.vcxproj.user
│ ├── OpenPoseConfig.cmake.in
│ ├── OpenPose_CPU.vcxproj.user
│ ├── OpenPose.vcxproj.user
│ └── Utils.cmake
├── CMakeLists.txt
├── doc
│ ├── Chessboard_in_PDF
│ │ ├── pattern.eps
│ │ └── pattern.pdf
│ ├── contributors.md
│ ├── demo_overview.md
│ ├── doc_autogeneration.doxygen
│ ├── faq.md
│ ├── GUI_help
│ │ ├── GUI_help.odt
│ │ └── GUI_help.png
│ ├── installation_deprecated.md
│ ├── installation_jetson_tx2.md
│ ├── installation.md
│ ├── library_add_new_module.md
│ ├── library_extend_functionality.md
│ ├── library_how_to_develop.md
│ ├── library_introduction.md
│ ├── library_overview.md
│ ├── media
│ │ ├── body_heat_maps.png
│ │ ├── cmake_installation
│ │ │ ├── im_1.png
│ │ │ ├── im_1_windows.png
│ │ │ ├── im_2.png
│ │ │ ├── im_2_windows.png
│ │ │ ├── im_3.png
│ │ │ ├── im_3_windows.png
│ │ │ └── im_5.png
│ │ ├── dance_foot.gif
│ │ ├── dance.gif
│ │ ├── keypoints_face.png
│ │ ├── keypoints_hand.odt
│ │ ├── keypoints_hand.png
│ │ ├── keypoints_pose_18.png
│ │ ├── keypoints_pose_25.png
│ │ ├── openpose3d.gif
│ │ ├── paf_heat_maps.png
│ │ ├── pose_face.gif
│ │ ├── pose_face_hands.gif
│ │ ├── pose_hands.gif
│ │ └── shake.gif
│ ├── modules
│ │ ├── 3d_reconstruction_module.md
│ │ ├── calibration_module.md
│ │ └── python_module.md
│ ├── output.md
│ ├── quick_start.md
│ ├── released_features.md
│ ├── release_notes.md
│ ├── standalone_face_or_hand_keypoint_detector.md
│ └── UML
│ └── 1_0_0rc3
│ ├── UML.mdj
│ ├── UML.pdf
│ └── UML.png
├── examples
│ ├── calibration
│ │ ├── calibration.cpp
│ │ └── CMakeLists.txt
│ ├── CMakeLists.txt
│ ├── media
│ │ ├── COCO_val2014_000000000192.jpg
│ │ ├── COCO_val2014_000000000241.jpg
│ │ ├── COCO_val2014_000000000257.jpg
│ │ ├── COCO_val2014_000000000294.jpg
│ │ ├── COCO_val2014_000000000328.jpg
│ │ ├── COCO_val2014_000000000338.jpg
│ │ ├── COCO_val2014_000000000357.jpg
│ │ ├── COCO_val2014_000000000360.jpg
│ │ ├── COCO_val2014_000000000395.jpg
│ │ ├── COCO_val2014_000000000415.jpg
│ │ ├── COCO_val2014_000000000428.jpg
│ │ ├── COCO_val2014_000000000459.jpg
│ │ ├── COCO_val2014_000000000474.jpg
│ │ ├── COCO_val2014_000000000488.jpg
│ │ ├── COCO_val2014_000000000536.jpg
│ │ ├── COCO_val2014_000000000544.jpg
│ │ ├── COCO_val2014_000000000564.jpg
│ │ ├── COCO_val2014_000000000569.jpg
│ │ ├── COCO_val2014_000000000589.jpg
│ │ ├── COCO_val2014_000000000623.jpg
│ │ └── video.avi
│ ├── openpose
│ │ ├── CMakeLists.txt
│ │ └── openpose.cpp
│ ├── tests
│ │ ├── clTest.cpp
│ │ ├── CMakeLists.txt
│ │ ├── drawProtoTxt.sh
│ │ ├── hand_accuracy_test.sh
│ │ ├── handFromJsonTest.cpp
│ │ ├── pose_accuracy_car_val.sh
│ │ ├── pose_accuracy_coco_test_dev.sh
│ │ ├── pose_accuracy_coco_val_2014.sh
│ │ ├── pose_accuracy_coco_val_foot.sh
│ │ ├── pose_accuracy_coco_val_server_2014.sh
│ │ ├── pose_accuracy_coco_val_server.sh
│ │ ├── pose_accuracy_coco_val.sh
│ │ ├── pose_time_Caffe_layers.sh
│ │ ├── pose_time_visual_GUI.sh
│ │ ├── resizeTest.cpp
│ │ ├── speed_test.sh
│ │ └── wrapperHandFromJsonTest.hpp
│ ├── tutorial_add_module
│ │ ├── 1_custom_post_processing.cpp
│ │ ├── CMakeLists.txt
│ │ ├── userDatum.hpp
│ │ ├── userPostProcessing.hpp
│ │ └── wUserPostProcessing.hpp
│ ├── tutorial_pose
│ │ ├── 1_extract_from_image.cpp
│ │ ├── 2_extract_pose_or_heatmat_from_image.cpp
│ │ └── CMakeLists.txt
│ ├── tutorial_python
│ │ ├── 1_extract_pose.py
│ │ ├── 2_pose_from_heatmaps.py
│ │ └── CMakeLists.txt
│ ├── tutorial_thread
│ │ ├── 1_openpose_read_and_display.cpp
│ │ ├── 2_user_processing_function.cpp
│ │ ├── 3_user_input_processing_and_output.cpp
│ │ ├── 4_user_input_processing_output_and_datum.cpp
│ │ └── CMakeLists.txt
│ ├── tutorial_wrapper
│ │ ├── 1_user_synchronous_postprocessing.cpp
│ │ ├── 2_user_synchronous_input.cpp
│ │ ├── 3_user_synchronous_output.cpp
│ │ ├── 4_user_synchronous_all.cpp
│ │ ├── 5_user_asynchronous.cpp
│ │ ├── 6_user_asynchronous_output.cpp
│ │ └── CMakeLists.txt
│ └── user_code
│ ├── CMakeLists.txt
│ └── README.md
├── include
│ └── openpose
│ ├── 3d
│ │ ├── cameraParameterReader.hpp
│ │ ├── headers.hpp
│ │ ├── jointAngleEstimation.hpp
│ │ ├── poseTriangulation.hpp
│ │ ├── wJointAngleEstimation.hpp
│ │ └── wPoseTriangulation.hpp
│ ├── calibration
│ │ ├── cameraParameterEstimation.hpp
│ │ ├── gridPatternFunctions.hpp
│ │ └── headers.hpp
│ ├── core
│ │ ├── array.hpp
│ │ ├── common.hpp
│ │ ├── cvMatToOpInput.hpp
│ │ ├── cvMatToOpOutput.hpp
│ │ ├── datum.hpp
│ │ ├── enumClasses.hpp
│ │ ├── gpuRenderer.hpp
│ │ ├── headers.hpp
│ │ ├── keepTopNPeople.hpp
│ │ ├── keypointScaler.hpp
│ │ ├── macros.hpp
│ │ ├── opOutputToCvMat.hpp
│ │ ├── point.hpp
│ │ ├── rectangle.hpp
│ │ ├── renderer.hpp
│ │ ├── scaleAndSizeExtractor.hpp
│ │ ├── wCvMatToOpInput.hpp
│ │ ├── wCvMatToOpOutput.hpp
│ │ ├── wKeepTopNPeople.hpp
│ │ ├── wKeypointScaler.hpp
│ │ ├── wOpOutputToCvMat.hpp
│ │ └── wScaleAndSizeExtractor.hpp
│ ├── face
│ │ ├── faceCpuRenderer.hpp
│ │ ├── faceDetector.hpp
│ │ ├── faceDetectorOpenCV.hpp
│ │ ├── faceExtractorCaffe.hpp
│ │ ├── faceExtractorNet.hpp
│ │ ├── faceGpuRenderer.hpp
│ │ ├── faceParameters.hpp
│ │ ├── faceRenderer.hpp
│ │ ├── headers.hpp
│ │ ├── renderFace.hpp
│ │ ├── wFaceDetector.hpp
│ │ ├── wFaceDetectorOpenCV.hpp
│ │ ├── wFaceExtractorNet.hpp
│ │ └── wFaceRenderer.hpp
│ ├── filestream
│ │ ├── bvhSaver.hpp
│ │ ├── cocoJsonSaver.hpp
│ │ ├── enumClasses.hpp
│ │ ├── fileSaver.hpp
│ │ ├── fileStream.hpp
│ │ ├── headers.hpp
│ │ ├── heatMapSaver.hpp
│ │ ├── imageSaver.hpp
│ │ ├── jsonOfstream.hpp
│ │ ├── keypointSaver.hpp
│ │ ├── peopleJsonSaver.hpp
│ │ ├── udpSender.hpp
│ │ ├── videoSaver.hpp
│ │ ├── wBvhSaver.hpp
│ │ ├── wCocoJsonSaver.hpp
│ │ ├── wFaceSaver.hpp
│ │ ├── wHandSaver.hpp
│ │ ├── wHeatMapSaver.hpp
│ │ ├── wImageSaver.hpp
│ │ ├── wPeopleJsonSaver.hpp
│ │ ├── wPoseSaver.hpp
│ │ ├── wUdpSender.hpp
│ │ └── wVideoSaver.hpp
│ ├── gpu
│ │ ├── cl2.hpp
│ │ ├── cuda.hpp
│ │ ├── cuda.hu
│ │ ├── enumClasses.hpp
│ │ ├── gpu.hpp
│ │ ├── headers.hpp
│ │ └── opencl.hcl
│ ├── gui
│ │ ├── enumClasses.hpp
│ │ ├── frameDisplayer.hpp
│ │ ├── gui3D.hpp
│ │ ├── guiAdam.hpp
│ │ ├── gui.hpp
│ │ ├── guiInfoAdder.hpp
│ │ ├── headers.hpp
│ │ ├── wGui3D.hpp
│ │ ├── wGuiAdam.hpp
│ │ ├── wGui.hpp
│ │ └── wGuiInfoAdder.hpp
│ ├── hand
│ │ ├── handCpuRenderer.hpp
│ │ ├── handDetectorFromTxt.hpp
│ │ ├── handDetector.hpp
│ │ ├── handExtractorCaffe.hpp
│ │ ├── handExtractorNet.hpp
│ │ ├── handGpuRenderer.hpp
│ │ ├── handParameters.hpp
│ │ ├── handRenderer.hpp
│ │ ├── headers.hpp
│ │ ├── renderHand.hpp
│ │ ├── wHandDetectorFromTxt.hpp
│ │ ├── wHandDetector.hpp
│ │ ├── wHandDetectorTracking.hpp
│ │ ├── wHandDetectorUpdate.hpp
│ │ ├── wHandExtractorNet.hpp
│ │ └── wHandRenderer.hpp
│ ├── headers.hpp
│ ├── net
│ │ ├── headers.hpp
│ │ ├── maximumBase.hpp
│ │ ├── maximumCaffe.hpp
│ │ ├── netCaffe.hpp
│ │ ├── net.hpp
│ │ ├── nmsBase.hpp
│ │ ├── nmsCaffe.hpp
│ │ ├── resizeAndMergeBase.hpp
│ │ └── resizeAndMergeCaffe.hpp
│ ├── pose
│ │ ├── bodyPartConnectorBase.hpp
│ │ ├── bodyPartConnectorCaffe.hpp
│ │ ├── enumClasses.hpp
│ │ ├── headers.hpp
│ │ ├── poseCpuRenderer.hpp
│ │ ├── poseExtractorCaffe.hpp
│ │ ├── poseExtractor.hpp
│ │ ├── poseExtractorNet.hpp
│ │ ├── poseGpuRenderer.hpp
│ │ ├── poseParameters.hpp
│ │ ├── poseParametersRender.hpp
│ │ ├── poseRenderer.hpp
│ │ ├── renderPose.hpp
│ │ ├── wPoseExtractor.hpp
│ │ ├── wPoseExtractorNet.hpp
│ │ └── wPoseRenderer.hpp
│ ├── producer
│ │ ├── datumProducer.hpp
│ │ ├── enumClasses.hpp
│ │ ├── flirReader.hpp
│ │ ├── headers.hpp
│ │ ├── imageDirectoryReader.hpp
│ │ ├── ipCameraReader.hpp
│ │ ├── producer.hpp
│ │ ├── spinnakerWrapper.hpp
│ │ ├── videoCaptureReader.hpp
│ │ ├── videoReader.hpp
│ │ ├── wDatumProducer.hpp
│ │ └── webcamReader.hpp
│ ├── thread
│ │ ├── enumClasses.hpp
│ │ ├── headers.hpp
│ │ ├── priorityQueue.hpp
│ │ ├── queueBase.hpp
│ │ ├── queue.hpp
│ │ ├── subThread.hpp
│ │ ├── subThreadNoQueue.hpp
│ │ ├── subThreadQueueIn.hpp
│ │ ├── subThreadQueueInOut.hpp
│ │ ├── subThreadQueueOut.hpp
│ │ ├── thread.hpp
│ │ ├── threadManager.hpp
│ │ ├── wIdGenerator.hpp
│ │ ├── workerConsumer.hpp
│ │ ├── worker.hpp
│ │ ├── workerProducer.hpp
│ │ ├── wQueueAssembler.hpp
│ │ └── wQueueOrderer.hpp
│ ├── tracking
│ │ ├── headers.hpp
│ │ ├── personIdExtractor.hpp
│ │ ├── personTracker.hpp
│ │ ├── pyramidalLK.hpp
│ │ └── wPersonIdExtractor.hpp
│ ├── utilities
│ │ ├── check.hpp
│ │ ├── enumClasses.hpp
│ │ ├── errorAndLog.hpp
│ │ ├── fastMath.hpp
│ │ ├── fileSystem.hpp
│ │ ├── flagsToOpenPose.hpp
│ │ ├── headers.hpp
│ │ ├── keypoint.hpp
│ │ ├── openCv.hpp
│ │ ├── pointerContainer.hpp
│ │ ├── profiler.hpp
│ │ ├── render.hu
│ │ ├── standard.hpp
│ │ └── string.hpp
│ └── wrapper
│ ├── headers.hpp
│ ├── wrapperAuxiliary.hpp
│ ├── wrapper.hpp
│ ├── wrapperStructExtra.hpp
│ ├── wrapperStructFace.hpp
│ ├── wrapperStructHand.hpp
│ ├── wrapperStructInput.hpp
│ ├── wrapperStructOutput.hpp
│ └── wrapperStructPose.hpp
├── LICENSE
├── models
│ ├── cameraParameters
│ │ └── flir
│ │ └── 17012332.xml.example
│ ├── face
│ │ ├── haarcascade_frontalface_alt.xml
│ │ └── pose_deploy.prototxt
│ ├── getModels.bat
│ ├── getModels.sh
│ ├── hand
│ │ └── pose_deploy.prototxt
│ └── pose
│ ├── body_25
│ │ └── pose_deploy.prototxt
│ ├── coco
│ │ └── pose_deploy_linevec.prototxt
│ └── mpi
│ ├── pose_deploy_linevec_faster_4_stages.prototxt
│ └── pose_deploy_linevec.prototxt
├── python
│ ├── CMakeLists.txt
│ └── openpose
│ ├── CMakeLists.txt
│ ├── __init__.py
│ ├── _openpose.cpp
│ └── openpose.py
├── README.md
├── src
│ ├── CMakeLists.txt
│ └── openpose
│ ├── 3d
│ │ ├── cameraParameterReader.cpp
│ │ ├── CMakeLists.txt
│ │ ├── defineTemplates.cpp
│ │ ├── jointAngleEstimation.cpp
│ │ └── poseTriangulation.cpp
│ ├── calibration
│ │ ├── cameraParameterEstimation.cpp
│ │ ├── CMakeLists.txt
│ │ └── gridPatternFunctions.cpp
│ ├── CMakeLists.txt
│ ├── core
│ │ ├── array.cpp
│ │ ├── CMakeLists.txt
│ │ ├── cvMatToOpInput.cpp
│ │ ├── cvMatToOpOutput.cpp
│ │ ├── datum.cpp
│ │ ├── defineTemplates.cpp
│ │ ├── gpuRenderer.cpp
│ │ ├── keepTopNPeople.cpp
│ │ ├── keypointScaler.cpp
│ │ ├── opOutputToCvMat.cpp
│ │ ├── point.cpp
│ │ ├── rectangle.cpp
│ │ ├── renderer.cpp
│ │ └── scaleAndSizeExtractor.cpp
│ ├── face
│ │ ├── CMakeLists.txt
│ │ ├── defineTemplates.cpp
│ │ ├── faceCpuRenderer.cpp
│ │ ├── faceDetector.cpp
│ │ ├── faceDetectorOpenCV.cpp
│ │ ├── faceExtractorCaffe.cpp
│ │ ├── faceExtractorNet.cpp
│ │ ├── faceGpuRenderer.cpp
│ │ ├── faceRenderer.cpp
│ │ ├── renderFace.cpp
│ │ └── renderFace.cu
│ ├── filestream
│ │ ├── bvhSaver.cpp
│ │ ├── CMakeLists.txt
│ │ ├── cocoJsonSaver.cpp
│ │ ├── defineTemplates.cpp
│ │ ├── fileSaver.cpp
│ │ ├── fileStream.cpp
│ │ ├── heatMapSaver.cpp
│ │ ├── imageSaver.cpp
│ │ ├── jsonOfstream.cpp
│ │ ├── keypointSaver.cpp
│ │ ├── peopleJsonSaver.cpp
│ │ ├── udpSender.cpp
│ │ └── videoSaver.cpp
│ ├── gpu
│ │ ├── CMakeLists.txt
│ │ ├── cuda.cpp
│ │ ├── gpu.cpp
│ │ └── opencl.cpp
│ ├── gui
│ │ ├── CMakeLists.txt
│ │ ├── defineTemplates.cpp
│ │ ├── frameDisplayer.cpp
│ │ ├── gui3D.cpp
│ │ ├── guiAdam.cpp
│ │ ├── gui.cpp
│ │ └── guiInfoAdder.cpp
│ ├── hand
│ │ ├── CMakeLists.txt
│ │ ├── defineTemplates.cpp
│ │ ├── handCpuRenderer.cpp
│ │ ├── handDetector.cpp
│ │ ├── handDetectorFromTxt.cpp
│ │ ├── handExtractorCaffe.cpp
│ │ ├── handExtractorNet.cpp
│ │ ├── handGpuRenderer.cpp
│ │ ├── handRenderer.cpp
│ │ ├── renderHand.cpp
│ │ └── renderHand.cu
│ ├── net
│ │ ├── CMakeLists.txt
│ │ ├── maximumBase.cpp
│ │ ├── maximumBase.cu
│ │ ├── maximumCaffe.cpp
│ │ ├── netCaffe.cpp
│ │ ├── nmsBaseCL.cpp
│ │ ├── nmsBase.cpp
│ │ ├── nmsBase.cu
│ │ ├── nmsCaffe.cpp
│ │ ├── resizeAndMergeBaseCL.cpp
│ │ ├── resizeAndMergeBase.cpp
│ │ ├── resizeAndMergeBase.cu
│ │ └── resizeAndMergeCaffe.cpp
│ ├── pose
│ │ ├── bodyPartConnectorBase.cpp
│ │ ├── bodyPartConnectorBase.cu
│ │ ├── bodyPartConnectorCaffe.cpp
│ │ ├── CMakeLists.txt
│ │ ├── defineTemplates.cpp
│ │ ├── poseCpuRenderer.cpp
│ │ ├── poseExtractorCaffe.cpp
│ │ ├── poseExtractor.cpp
│ │ ├── poseExtractorNet.cpp
│ │ ├── poseGpuRenderer.cpp
│ │ ├── poseParameters.cpp
│ │ ├── poseParametersRender.cpp
│ │ ├── poseRenderer.cpp
│ │ ├── renderPose.cpp
│ │ └── renderPose.cu
│ ├── producer
│ │ ├── CMakeLists.txt
│ │ ├── defineTemplates.cpp
│ │ ├── flirReader.cpp
│ │ ├── imageDirectoryReader.cpp
│ │ ├── ipCameraReader.cpp
│ │ ├── producer.cpp
│ │ ├── spinnakerWrapper.cpp
│ │ ├── videoCaptureReader.cpp
│ │ ├── videoReader.cpp
│ │ └── webcamReader.cpp
│ ├── thread
│ │ ├── CMakeLists.txt
│ │ └── defineTemplates.cpp
│ ├── tracking
│ │ ├── CMakeLists.txt
│ │ ├── defineTemplates.cpp
│ │ ├── personIdExtractor.cpp
│ │ ├── personTracker.cpp
│ │ ├── pyramidalLK.cpp
│ │ └── pyramidalLK.cu
│ ├── utilities
│ │ ├── CMakeLists.txt
│ │ ├── errorAndLog.cpp
│ │ ├── fileSystem.cpp
│ │ ├── flagsToOpenPose.cpp
│ │ ├── keypoint.cpp
│ │ ├── openCv.cpp
│ │ ├── profiler.cpp
│ │ └── string.cpp
│ └── wrapper
│ ├── CMakeLists.txt
│ ├── defineTemplates.cpp
│ ├── wrapperAuxiliary.cpp
│ ├── wrapperStructExtra.cpp
│ ├── wrapperStructFace.cpp
│ ├── wrapperStructHand.cpp
│ ├── wrapperStructInput.cpp
│ ├── wrapperStructOutput.cpp
│ └── wrapperStructPose.cpp
├── ubuntu
│ ├── install_caffe_and_openpose_JetsonTX2_JetPack3.1.sh
│ ├── install_cmake.sh
│ ├── install_cuda.sh
│ ├── install_cudnn.sh
│ ├── install_openpose_JetsonTX2_JetPack3.1.sh
│ └── Makefile.config.Ubuntu16_cuda8_JetsonTX2
└── ubuntu_deprecated
├── install_caffe_and_openpose_if_cuda8.sh
├── install_openpose_if_cuda8.sh
├── Makefile.config.Ubuntu14_cuda7.example
├── Makefile.config.Ubuntu14_cuda8.example
├── Makefile.config.Ubuntu16_cuda7.example
├── Makefile.config.Ubuntu16_cuda8.example
└── Makefile.example
74 directories, 493 files
标签:
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论