diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json new file mode 100644 index 0000000..19b7bd2 --- /dev/null +++ b/.vscode/c_cpp_properties.json @@ -0,0 +1,23 @@ +{ + "configurations": [ + { + "browse": { + "databaseFilename": "${default}", + "limitSymbolsToIncludedHeaders": false + }, + "includePath": [ + "/home/fredlyu/driver/ws_spinnaker/devel/include/**", + "/opt/ros/noetic/include/**", + "/home/fredlyu/driver/ws_spinnaker/src/spinnaker_camera_driver/include", + "/opt/spinnaker/include", + "/usr/include/**" + ], + "name": "ROS", + "intelliSenseMode": "gcc-x64", + "compilerPath": "/usr/bin/gcc", + "cStandard": "gnu11", + "cppStandard": "c++14" + } + ], + "version": 4 +} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..1d56c8d --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,16 @@ +{ + "python.autoComplete.extraPaths": [ + "/home/fredlyu/driver/ws_spinnaker/devel/lib/python3/dist-packages", + "/home/fredlyu/driver/ws_orbbec/devel/lib/python3/dist-packages", + "/home/fredlyu/slam/ws_livox_ros_driver_for_r3live/devel/lib/python3/dist-packages", + "/home/fredlyu/slam/ws_kalibr/devel/lib/python3/dist-packages", + "/opt/ros/noetic/lib/python3/dist-packages" + ], + "python.analysis.extraPaths": [ + "/home/fredlyu/driver/ws_spinnaker/devel/lib/python3/dist-packages", + "/home/fredlyu/driver/ws_orbbec/devel/lib/python3/dist-packages", + "/home/fredlyu/slam/ws_livox_ros_driver_for_r3live/devel/lib/python3/dist-packages", + "/home/fredlyu/slam/ws_kalibr/devel/lib/python3/dist-packages", + "/opt/ros/noetic/lib/python3/dist-packages" + ] +} \ No newline at end of file diff --git a/README.md b/README.md index 2fb49ba..821ebce 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,12 @@ +适配了Ubuntu20.04以及Opencv3以上版本;该仓库所用SpinnakerSDK版本为3.0.0.118 +主要修改了以下部分: + - opencv: cv.h -> opencv2.opencv.hpp + - opencv: cvDestroyAllWindows -> destroyAllWindows() + - opencv: CV_WINDOW_NORMAL -> WINDOW_NORMAL + - opencv: CV_WINDOW_KEEPRATIO -> WINDOW_KEEPRATIO + - spinnakerSDK: ImagePtr::Convert() -> ImageProcessor::Convert() + - 修改了硬触发外部通道: Line3 -> Line0(Opto-isolated input)(capture.cpp:748-749) +------------------------------------------------------------------------------ master: [![Build Status](https://travis-ci.org/neufieldrobotics/spinnaker_sdk_camera_driver.svg?branch=master)](https://travis-ci.org/neufieldrobotics/spinnaker_sdk_camera_driver) dev: [![Build Status](https://travis-ci.org/neufieldrobotics/spinnaker_sdk_camera_driver.svg?branch=dev)](https://travis-ci.org/neufieldrobotics/spinnaker_sdk_camera_driver) diff --git a/include/spinnaker_sdk_camera_driver/std_include.h b/include/spinnaker_sdk_camera_driver/std_include.h index 24c196b..9c37c12 100755 --- a/include/spinnaker_sdk_camera_driver/std_include.h +++ b/include/spinnaker_sdk_camera_driver/std_include.h @@ -6,7 +6,7 @@ #include "SpinGenApi/SpinnakerGenApi.h" // OpenCV -#include +#include #include // ROS diff --git a/launch/acquisition.launch b/launch/acquisition.launch index 33a5093..478c943 100644 --- a/launch/acquisition.launch +++ b/launch/acquisition.launch @@ -4,9 +4,9 @@ - + - + diff --git a/launch/acquisition_external_trigger.launch b/launch/acquisition_external_trigger.launch index ae636d3..7f96f4d 100644 --- a/launch/acquisition_external_trigger.launch +++ b/launch/acquisition_external_trigger.launch @@ -4,7 +4,7 @@ - + - + diff --git a/params/external_trigger_params.yaml b/params/external_trigger_params.yaml index 232d9cc..514d53a 100644 --- a/params/external_trigger_params.yaml +++ b/params/external_trigger_params.yaml @@ -1,5 +1,5 @@ cam_ids: -- 17197559 +- 22240274 cam_aliases: - cam0 skip: 20 diff --git a/params/test_params.yaml b/params/test_params.yaml index 67cd6e6..8cdd711 100644 --- a/params/test_params.yaml +++ b/params/test_params.yaml @@ -1,8 +1,8 @@ cam_ids: -- 17197559 +- 22240274 cam_aliases: - cam0 -master_cam: 17197559 +master_cam: 22240274 skip: 20 delay: 1.0 diff --git a/src/camera.cpp b/src/camera.cpp index 9b7010c..63e0757 100755 --- a/src/camera.cpp +++ b/src/camera.cpp @@ -103,9 +103,17 @@ Mat acquisition::Camera::convert_to_mat(ImagePtr pImage) { ImagePtr convertedImage; if (COLOR_) - convertedImage = pImage->Convert(PixelFormat_BGR8); //, NEAREST_NEIGHBOR); + { + // convertedImage = pImage->Convert(PixelFormat_BGR8); //, NEAREST_NEIGHBOR); + ImageProcessor processor; + convertedImage = processor.Convert(pImage, PixelFormat_BGR8); + } else - convertedImage = pImage->Convert(PixelFormat_Mono8); //, NEAREST_NEIGHBOR); + { + ImageProcessor processor; + convertedImage = processor.Convert(pImage, PixelFormat_Mono8); + } + unsigned int XPadding = convertedImage->GetXPadding(); unsigned int YPadding = convertedImage->GetYPadding(); unsigned int rowsize = convertedImage->GetWidth(); diff --git a/src/capture.cpp b/src/capture.cpp index 19c2660..2ef28aa 100755 --- a/src/capture.cpp +++ b/src/capture.cpp @@ -745,8 +745,8 @@ void acquisition::Capture::init_cameras(bool soft = false) { // in master slave setup. Also in the mode when another sensor such as IMU triggers // the camera cams[i].setEnumValue("TriggerMode", "On"); - cams[i].setEnumValue("LineSelector", "Line3"); - cams[i].setEnumValue("TriggerSource", "Line3"); + cams[i].setEnumValue("LineSelector", "Line0"); + cams[i].setEnumValue("TriggerSource", "Line0"); cams[i].setEnumValue("TriggerSelector", "FrameStart"); cams[i].setEnumValue("LineMode", "Input"); @@ -996,8 +996,8 @@ void acquisition::Capture::run_soft_trig() { start_acquisition(); // Camera directories created at first save - - if (LIVE_)namedWindow("Acquisition", CV_WINDOW_NORMAL | CV_WINDOW_KEEPRATIO); + + if (LIVE_)namedWindow("Acquisition", WINDOW_NORMAL | WINDOW_KEEPRATIO); int count = 0; @@ -1046,7 +1046,7 @@ void acquisition::Capture::run_soft_trig() { } } - int key = cvWaitKey(1); + int key = waitKey(1); ROS_DEBUG_STREAM("Key press: "<<(key & 255)< nframes_) { ROS_INFO_STREAM(nframes_ << " frames recorded. Terminating..."); - cvDestroyAllWindows(); + destroyAllWindows(); break; } }