0

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
    }
4

1 に答える 1