#python #c #opencv #ros
Вопрос:
я пытаюсь опубликовать изображение с помощью python . и я пытался подписаться на него через c . узел может взаимодействовать, но код подписчика не может кодировать тему изображения.это мой код .
pub.publish(br.cv2_to_imgmsg(frame))
где br-это функция cvbridge, и я использовал здесь cvq_to_imgmsg.
на стороне подписчика.
image_transport::Subscriber sub = it.subscribe("video_frames", 1, imageCallback);
я использую перенос изображений для подписки, и это моя функция обратного вызова
void imageCallback(const sensor_msgs::ImageConstPtramp; msg)
{
cv_bridge::CvImagePtr cv_ptr;
try
{
// Convert the ROS message
cv_ptr = cv_bridge::toCvCopy(msg, "bgr8");
cv::Mat current_frame = cv_ptr->image;
// Display the current frame
cv::imshow("view", current_frame);
// Display frame for 30 milliseconds
cv::waitKey(30);
}
catch (cv_bridge::Exceptionamp; e)
{a
ROS_ERROR("Could not convert from '%s' to 'bgr8'.", msg->encoding.c_str());
}
}
код сценария кодирует msg и всегда выдает сообщение об ошибке. идк, что я делаю не так
Комментарии:
1.
CV_8UC3
являетсяbgr8
. возможно, вам следует взглянуть на исключение вместо того, чтобы ловить и игнорировать его, и предполагать, что вы знаете, в чем заключалось исключение.