我通过 ROS 主题订阅提供了“rgb8”格式的味精。如何从中创建一个 QImage 并让 qml Image 在其上显示图片?目前我正在处理以下代码片段。
QImage *VideoPlayer::Mat2QImage(cv::Mat const& src)
{
QImage *imgPtr = new QImage((const uchar *) src.data,
src.cols, src.rows, src.step, QImage::Format_RGB888);
imgPtr->bits();
return imgPtr;
}
void VideoPlayer::imageCallback(const sensor_msgs::ImageConstPtr& msg)
{
static int count = 0;
try
{
try {
Mat imgMat = cv_bridge::toCvShare(msg, "rgb8")->image;
delete imgProvider->currentShot;
imgProvider->currentShot = Mat2QImage(imgMat);
...
}
(*currentShot) 由 qml 端的“源”属性中的 imageRequest(...) 方法感染。