|
26 | 26 | #include <ros/ros.h>
|
27 | 27 | #include <object_msgs/DetectObject.h>
|
28 | 28 |
|
29 |
| -std::string matType2Encoding(int mat_type) |
30 |
| -{ |
31 |
| - switch (mat_type) |
32 |
| - { |
33 |
| - case CV_8UC1: |
34 |
| - return "mono8"; |
35 |
| - case CV_8UC3: |
36 |
| - return "bgr8"; |
37 |
| - case CV_16SC1: |
38 |
| - return "mono16"; |
39 |
| - case CV_8UC4: |
40 |
| - return "rgba8"; |
41 |
| - default: |
42 |
| - throw std::runtime_error("Unsupported encoding type"); |
43 |
| - } |
44 |
| -} |
45 |
| - |
46 |
| -void convertFrameToMessage(const cv::Mat* frame, size_t frame_id, sensor_msgs::Image* image_msg) |
47 |
| -{ |
48 |
| - image_msg->height = frame->rows; |
49 |
| - image_msg->width = frame->cols; |
50 |
| - image_msg->encoding = matType2Encoding(frame->type()); |
51 |
| - image_msg->step = static_cast<sensor_msgs::Image::_step_type>(frame->step); |
52 |
| - size_t size = frame->step * frame->rows; |
53 |
| - image_msg->data.resize(size); |
54 |
| - memcpy(&image_msg->data[0], frame->data, size); |
55 |
| - image_msg->header.frame_id = std::to_string(frame_id); |
56 |
| -} |
57 |
| - |
58 | 29 | TEST(UnitTestSrv, testSrv)
|
59 | 30 | {
|
60 | 31 | ros::NodeHandle n;
|
61 | 32 | ros::ServiceClient client = n.serviceClient<object_msgs::DetectObject>("opencl_caffe/opencl_caffe_srv/run_inference");
|
62 | 33 | object_msgs::DetectObject inf;
|
63 | 34 |
|
64 |
| - cv::Mat image = cv::imread(ros::package::getPath("opencl_caffe") + "/resources/cat.jpg"); |
65 |
| - convertFrameToMessage(&image, 0, &inf.request.image); |
66 |
| - client.waitForExistence(ros::Duration(60)); |
| 35 | + inf.request.image_paths.push_back(ros::package::getPath("opencl_caffe") + "/resources/cat.jpg"); |
| 36 | + inf.request.image_paths.push_back(ros::package::getPath("opencl_caffe") + "/resources/cat.jpg"); |
| 37 | + client.waitForExistence(ros::Duration(120)); |
67 | 38 | ASSERT_TRUE(client.call(inf));
|
68 |
| - ASSERT_GE(inf.response.objects.objects_vector.size(), 1); |
| 39 | + ASSERT_TRUE(inf.response.objects.size() == 2); |
| 40 | + ASSERT_GE(inf.response.objects[0].objects_vector.size(), 1); |
| 41 | + ASSERT_GE(inf.response.objects[1].objects_vector.size(), 1); |
69 | 42 | }
|
70 | 43 |
|
71 | 44 | int main(int argc, char** argv)
|
|
0 commit comments