ROS cv_bridge C++ 字符串中的 ImagePtr 转换
ROS cv_bridge ImagePtr conversion in c++ string
下面是来自 ros 订阅者节点的代码片段,其中视频图像帧根据主题订阅并显示。根据我的要求,cv_ptr->图像需要转换为c ++字符串,以便我可以从中创建字节数组(向量(。
void imageCb(const sensor_msgs::ImageConstPtr& msg)
{
cv_bridge::CvImagePtr cv_ptr;
try
{
cv_ptr = cv_bridge::toCvCopy(msg, enc::BGR8);
}
catch (cv_bridge::Exception& e)
{
ROS_ERROR("cv_bridge exception: %s", e.what());
return;
}
if (cv_ptr->image.rows > 60 && cv_ptr->image.cols > 60)
cv::circle(cv_ptr->image, cv::Point(50, 50), 10, CV_RGB(255,0,0));
cv::imshow(WINDOW, cv_ptr->image);
cv::waitKey(3);
}
基本上我正在寻找在 c++ 字符串中转换cv_ptr>图像帧缓冲区的 API。根据主题订阅图像后,我需要在字节数组中转换相同的图像,以便它可以插入 activemqcpp 生产者中,因为其他末端 activemqjava 订阅者期望以字节流格式相同。
string img_string = (copy operation) cv_ptr->image;// Not sure how to copy this buffer in c++ string
vector <unsigned char> vec(img_string.begin().img_string.end());
以下是根据 cv_bridge.h 文件的类规范。
class CvImage;
typedef boost::shared_ptr<CvImage> CvImagePtr;
typedef boost::shared_ptr<CvImage const> CvImageConstPtr;
class CvImage
{
public:
std_msgs::Header header;
std::string encoding;
cv::Mat image;
sensor_msgs::ImagePtr toImageMsg() const;
void toImageMsg(sensor_msgs::Image& ros_image) const;
typedef boost::shared_ptr<CvImage> Ptr;
typedef boost::shared_ptr<CvImage const> ConstPtr;
};
任何人都可以建议如何在 roscpp 中实现相同的目标吗?
如此处所述 http://docs.opencv.org/3.1.0/d3/d63/classcv_1_1Mat.html#a4d33bed1c850265370d2af0ff02e1564 OpenCV的Mat类已经将图像数据存储为无符号字符数组。
cv_ptr->image
的类型已经cv::Mat
.
您需要做的就是访问其内容,例如cv_ptr->image.data
相关文章:
- 防止主数据类型C++的隐式转换
- 模板参数替换失败,并且未完成隐式转换
- 努力将整数转换为链表。不知道我在这里做错了什么
- HEX值到wchar_t字符(UTF-8)的转换
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 将 Qvector<uint8_t> 转换为 QString
- 如何在cuSparse中使用cusparseXcoo2csr从coo转换为csc
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- 在c++中使用nlohmann从类到json的转换
- 从"int*"强制转换为"unsigned int"会丢失精度错误
- 将Integer转换为4字节的unsined字符矢量(按大端字节顺序)
- 处理小于cpu数据总线的数据类型.(c++转换为机器代码)
- 如何使用OpenCV将RBG图像转换为HSV,并将H、S和V值保存为C++中的3个独立图像
- 复制列表初始化的隐式转换的等级是多少
- 正在将指针转换为范围
- 如何防止 c++ 在从浮点型转换为双精度型(不适用于 IO)时添加额外的小数?
- 将"打开的CV图像"中的"颜色"转换为整数格式
- 是否可以从int转换为enum类类型
- 了解 GLM- openGL 中的相机转换
- ROS cv_bridge C++ 字符串中的 ImagePtr 转换