カメラからライブビューをキャプチャしようとしており、QLabel に表示されるようにリダイレクトしています。ただし、半分しか表示されません (以下を参照)。
左側のウィンドウは、完全に機能する cv::imshow() を使用して表示されます。別のスレッドで Mat をキャプチャし、Qimage をパラメーターとして信号を送信し、そのイメージをスロットの QLabel に設定しています。
コードは次のとおりです。
while(true){
cam >> mat;
cv::imshow("name",mat);
emit send_UIupdate(mat2qimage(mat));
}
スロットでイメージを Qlabel に設定します。
void Dialog::updateUI(const QImage &img){
label->setPixmap(QPixmap::fromImage(img));
}
以下を使用して Mat を QImage に変換します。
QImage camera::mat2qimage(const cv::Mat& mat) {
cv::Mat rgb;
cv::cvtColor(mat, rgb, CV_BGR2RGB);
return QImage((const unsigned char*)(rgb.data), rgb.cols, rgb.rows, QImage::Format_RGB888);
}
この問題を解決するための提案はありますか??