在一个将RGB图像转换为灰度图的程序中,用Qlabel显示灰度图时,出现了图像扭曲的问题。
cv::Mat gimg;
cv::cvtColor(original_image,gimg,CV_BGR2GRAY);
image=gimg;
img = QImage((const unsigned char*)image.data, image.cols, image.rows,QImage::Format_Indexed8);
ui.label->setPixmap(QPixmap::fromImage(img));
ui.label->resize(ui.label->pixmap()->size());
this->resize(ui.label->pixmap()->size());
ui.label->show();
且只有一部分图片会出现这个问题。
观察图片的分辨率,发现图片宽度不为4的倍数时就会出现该问题。
于是,猜想问题就应该是图像数据没有按每行4字节的组织造成的。
于是手动补齐:
cv::Mat gimg;
cv::cvtColor(original_image,gimg,CV_BGR2GRAY);
image=gimg;
unsi