上述代码出现问题error: no member named 'Format_BGR888' in 'QImage'
时间: 2023-07-29 21:14:11 浏览: 555
抱歉,我之前给出的代码有误。确实,Qt的QImage类没有名为"Format_BGR888"的成员。
要将OpenCV中的BGR图像转换为Qt中的QImage,你可以使用以下代码:
```cpp
cv_bridge::CvImageConstPtr cv_ptr = cv_bridge::toCvCopy(msg, sensor_msgs::image_encodings::BGR8);
img = cv_ptr->image;
cv::cvtColor(img, img, cv::COLOR_BGR2RGB); // 将BGR图像转换为RGB图像
QImage image(img.data, img.cols, img.rows, img.step[0], QImage::Format_RGB888);
ROS_INFO("I'm setting picture in mul_t callback function!");
Q_EMIT loggingCamera();
```
这样修改后,应该可以将BGR8格式的图像成功转换为Qt可以处理的RGB888格式,并在Qt界面中显示。
如果问题仍然存在,请提供更多的错误信息和相关代码,这样我可以更好地帮助你解决问题。
相关问题
AttributeError: type object 'QImage' has no attribute 'Format_BGR888'
这个错误是由于在使用 QImage 类时,尝试访问不存在的 Format_BGR888 属性引起的。QImage 类在 PyQt 或 PySide 中用于处理图像。要解决这个问题,你可以查看你的代码并确保正确使用了 QImage 的属性和方法。可能是你在访问图像格式时出现了拼写错误或者调用了 PyQt 或 PySide 版本不支持的属性。请检查一下你的代码并对照相关文档或示例进行修正。如果问题仍然存在,请提供更多的代码细节和上下文,以便我能够给出更准确的建议。
qt5.13 里面没有qimage.format_bgr888
是的,Qt 5.13中没有QImage::Format_BGR888格式。如果您需要BGR888格式,您可以使用以下代码将其转换为RGB888格式:
```cpp
QImage image = ...;
image = image.rgbSwapped();
```
这将交换图像中的红色和蓝色通道,从而将BGR格式转换为RGB格式。现在您可以使用QImage::Format_RGB888格式来处理该图像了。
阅读全文