arasındaki resim biçimi uyumluluğu ROS konu aboneliği aracılığıyla "rgb8" biçim msg mesajım var. Bir QImage'ı nasıl oluşturabilir ve qml Image'in resmi nasıl görüntüleyebilir? Şu anda aşağıdaki kod parçacığı üzerinde çalışıyorum.ROS QImage
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) imageRequest (...) QML tarafının 'kaynak' özelliğinden yöntemle fecthed edilir.
Teşekkürler, ancak qml zaten ihtiyaca göre requestImage() yöntemini çağırıyor. Sorun qml Görüntü iletilen görüntüyü göstermiyor (sanırım). Yani, ben görüntü kodlama formatı veya bir şey üzerinde cahil değilim düşünüyorum. Qml dosyasında bu bölüme sahibim: "Image {... source:" image: // images/"+ imageSN ...}" –
1. QImage'ı dosyaya kaydetmeyi ve doğrulamayı denediniz mi? 2. Hata ayıklama mesajında herhangi bir hata mesajı var mı? – diro
Aslında, daha yeni yaptım. Png dosyasını doğru şekilde kaydeder. "ImgProvider-> currentShot-> save (" delta.png ") ile yapılır;" - bu komut. Burada, currentShot bir QImage için bir işaretçidir. –