我们一般会吧Mat对象的颜色bgr直接转为rgb这样直接输出会出现问题:
一般我们都会这么做:
//显示
cvtColor(dst,m_dstImage,COLOR_BGR2RGB);
QImage disImage = QImage(m_dstImage.data,
m_dstImage.cols,m_dstImage.rows,QImage::Format_RGB888);
ui->process_img_win->setPixmap(QPixmap::fromImage(disImage.scaled(ui->process_img_win->width(),
ui->process_img_win->height(), Qt::KeepAspectRatio)));
这时候我们对局部区域进行提取和标定的时候你就会发现出现这样的问题:
很明显我们看到标定的引脚倾斜了,但是如果我们在之前imshow发现没有问题的,说明前面的函数写的是没有问题。这是因为QImage要转为RGBA而不是RGB,改为如下即可:
这时候结果如下: