1 つのノードからイメージを公開した後、2 番目のノードでそのイメージをサブスクライブしたいと考えています。しかし、2番目のノードでサブスクライブした後、cv::Mat イメージに保存しようとすると、歪んでしまいます。
次のコードの patchImage は歪んでいます。いくつかの水平線と同じ画像の 4 つの画像が結合されています。
私のコードの概要は次のとおりです。
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
}