cv::mat转qimage显示错误
本地通过cv::imread 读取一张单通道8bit的图像,即openCV格式的CV_8UC1,或qt的QImage::Format_Indexed8格式。通过imshow显示正常,通过qt的控件qlabel或者qgraphicview显示异常。
解决方案
查看cv::imread的声明 Mat imread(const string& filename, int flag = IMREAD_COLOR)。问题在于第二个参数 flag。这个值默认是3通道BGR的值。会等于单通道的图像,应该用IMREAD_GRAYSCALE。