如何將opencv cv :: Mat轉換為qimage我想知道如何將OpenCV C ++標準cv :: Mat類型轉換為Qimage。我一直在尋找,但沒有運氣。我找到了一些將IPlimage轉換為Qimage的代碼,但這不是我想要的。謝謝
3 回答
呼喚遠方
TA貢獻1856條經驗 獲得超11個贊
這是24位RGB和灰度浮點的代碼??奢p松調節其他類型。它盡可能高效。
QImage Mat2QImage(const cv::Mat3b &src) {
QImage dest(src.cols, src.rows, QImage::Format_ARGB32);
for (int y = 0; y < src.rows; ++y) {
const cv::Vec3b *srcrow = src[y];
QRgb *destrow = (QRgb*)dest.scanLine(y);
for (int x = 0; x < src.cols; ++x) {
destrow[x] = qRgba(srcrow[x][2], srcrow[x][1], srcrow[x][0], 255);
}
}
return dest;}QImage Mat2QImage(const cv::Mat_<double> &src){
double scale = 255.0;
QImage dest(src.cols, src.rows, QImage::Format_ARGB32);
for (int y = 0; y < src.rows; ++y) {
const double *srcrow = src[y];
QRgb *destrow = (QRgb*)dest.scanLine(y);
for (int x = 0; x < src.cols; ++x) {
unsigned int color = srcrow[x] * scale;
destrow[x] = qRgba(color, color, color, 255);
}
}
return dest;}- 3 回答
- 0 關注
- 1466 瀏覽
添加回答
舉報
0/150
提交
取消
