카메라를 사용하여 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를 처음 접했을 때 형식이 약간 손실되었습니다. 변환이 제대로 작동하여 실제로 내가 뭘 만들고 있는지 알 수 없다고 생각합니다.EDIT : 나는 fllowing 라인 삭제 가지고
imgTomo1.convertTo (imgTomo, CV_8UC1)를;
정보가 손실되었습니다. 이제 더 이상 검정색 화면이 없지만 일부 "눈"(1 ~ 0을 매우 약하게 묘사하는 픽셀)과 내 카메라가 보여 주려고하는 것을 실제로 볼 수는 없습니다.
내가 코드를 잘못 정확히 모르겠지만 나는QImage
에cv::Mat
이미지를 변환하려면 다음 코드를 사용하여 답을 그레 구 아르
감사 당신은 당신의 대답을 위해서. 나는 그 문제들 중 하나를 발견 할 수 있었다. 실제로 "the imgTomo1.convertTo (imgTomo, CV_8UC1);" float32를 8bit로 변환하여 정보를 잃어 버렸습니다. 지금, 나는 이미지를 가지고있다. 그러나 그것은 조금 엉망이다. 그리고 많은 "눈"(나는 그렇지 않다면 그것을 두는 법을 모르고있다)이 sceen에있다. –