私はカメラを使ってcv :: MatオブジェクトであるimgTomo1イメージを取得しています。これはCV_32F画像です。 QPixmapを使ってQLabelに表示しようとしています。 QPixmapにcv :: Mat(CV_32F型)を表示
cv::Mat imgTomo;
imgTomo1.convertTo(imgTomo,CV_8UC1);
static QVector<QRgb> sColorTable;
// only create our color table the first time
if (sColorTable.isEmpty())
sColorTable.resize(256);
for (int i = 0; i < 256; ++i)
{
sColorTable[i] = qRgb(i, i, >i);
}
}
QImage image(imgTomo.data,
imgTomo.cols, imgTomo.rows,
static_cast<int>(imgTomo.step),
QImage::Format_Indexed8);
image.setColorTable(sColorTable);
_afficheImg->setPixmap(QPixmap::fromImage(image));
は残念ながら、表示された画像は、黒のまま: はここに私のコードです。 私はOpenCVを初めて使っているので、フォーマットが少し失われています。 変換が機能するはずなので、私は実際に何が起こっているのか分かりません。編集:私はfllowing線削除した:
imgTomo1.convertTo(imgTomo、CV_8UC1)を、
これで情報が失われました。 今はもう黒い画面がありませんが、いくつかの "雪"(フォーム1〜0の非常にきれいな形の魔法のピクセル)が表示されます。
は、あなたの答えをありがとう グレゴワール
感謝あなたの答えはあなたです。私はその問題の1つを見つけ出すことができました。実際には "imgTomo1.convertTo(imgTomo、CV_8UC1);"私はfloat32を8bitでintに変換していたため、情報が失われました。今、私はイメージを持っていますが、それはちょっと混乱していて、たくさんの "雪"(私はそうでなければそれを置く方法はわかりません)がsceenにあります。 –