我已经从一个节点发布了一张图片,然后我想在我的第二个节点中订阅该图片。但是在第二个节点中订阅它之后,当我尝试将它存储在 cv::Mat 图像中时,它会被扭曲。
以下代码中的 patchImage 失真。有一些水平线和同一图像的四个图像合并。
我的代码概述如下。
first_node_publisher
{
im.header.stamp = time;
im.width = width;
im.height = height;
im.step = 3*width;
im.encoding = "rgb8";
image_pub.publish(im);
}
second_node_imageCallBack(const sensor_msgs::ImageConstPtr& msg)
{
cv::Mat patchImage;
cv_bridge::CvImagePtr cv_ptr;
try
{
cv_ptr = cv_bridge::toCvCopy(msg, sensor_msgs::image_encodings::RGB8); //
}
catch (cv_bridge::Exception& e)
{
ROS_ERROR("cv_bridge exception: %s", e.what());
}
patchImage=cv_ptr->image;
imshow("Received Image", patchImage); //This patchImage is distored
}